在所选表行下显示数据

Displaying data under selected table row

提问人:Syed Basit 提问时间:10/23/2023 最后编辑:NimanthaSyed Basit 更新时间:11/13/2023 访问量:31

问:

我正在分享我的代码和我使用 asp dot net core 面临的问题 我有manager class , dto , cshtml 和enum

这是我的dto类

     `public class InvestmentDetailDto
     {
     public InvestmentDetailDto()
     {
     AmountType = new List<PickList>();
     SectionCode = new List<PickList>();
      public int Id { get; set; }

    public string EmployeeId { get; set; }

    public string Name { get; set; }
    public string PolicyNumber { get; set; }

    public decimal Amount { get; set; }
    public decimal AMTAmount { get; set; }
    public DateTime InvestmentStartDate { get; set; }
    public DateTime InvestmentEndDate { get; set; }
    public bool IsDeleted { get; set; }
    public List<PickList> AmountType { get; set; }
    public List<PickList> SectionCode { get; set; }
    public int AmountTypeId { get; set; }
    public int SectionCodeId { get; set; }
    public string PolicyNo { get; set; }
    public bool IsActive { get; set; }
     
    }`

这是我在 Manager 类中用于映射的循环

                        foreach (var invest in 
                        investment.EmployeeInvestmentDetails.Where(x =>!x.IsDeleted && 
                         x.IsActive == true ))
                        {
                            var invertDetail = new InvestmentDetailDto();
                         
                            invertDetail.Name = invest.Name.ToString(); 
                            invertDetail.AMTAmount = invest.AMTAmount ?? 0;
                            invertDetail.Amount = invest.Amount ?? 0;

                            empSalaryDetail.EmployeeInvestmentDetails.Add(invertDetail);
                            




                        }

这是 CSHTML

    @foreach (var sectionName in new[] { "80C", "80CCC", "80CCD" })
{
    var matchingInvestments = Model.EmployeeInvestmentDetails.Where(x => x.SectionCode.Any(p => p.Value == sectionName)).ToList();

    if (matchingInvestments.Any())
    {
        <tr>
            <td class="mainLine" style="padding-left: 2%;">@sectionName</td>
            <td class="INRLine"></td>
            <td class="INRLine"></td>
            <td class="INRLine"></td>
        </tr>

        foreach (var item in matchingInvestments)
        {
            <tr>
                <td class="mainLine" style="padding-left: 2%;">@item.Name</td>
                <td class="INRLine"><b>@item.Amount</b></td>
                <td class="INRLine"><b>@item.Amount</b></td>
                <td class="INRLine"><b>@item.AMTAmount</b></td>
            </tr>
        }
    }
}

这是创建的枚举

   public enum SectionCodeEnum
 {
  [Display(Name = "80C")]
  Eighty_C = 1,
  [Display(Name = "80CCC")]
  Eighty_CCC = 2,
  [Display(Name = "80CCD")]
  Eighty_CCD = 3,

部分是一个接机列表,如下所示

   public class PickList
  {
   public int Id { get; set; }
   public string Value { get; set; }
  }

我必须以我的形式表现出来

每当我在应该像这样可见的任何部分下插入投资名称时(例如 80C 及其下的投资名称与 80CCC 和 80CCD 相同)

相反,我什么也没得到

C# asp.net .net-core dto 选择列表

评论


答:

0赞 Lakhwinder Singh 10/23/2023 #1

InvestmentDetailDto:此类似乎是用于传输与投资相关的数据的 DTO(数据传输对象)。它包含各种投资细节的属性。你还对 AmountType 和 SectionCode 使用 PickList 列表。

foreach 循环:使用 foreach 循环循环访问一组投资,并为每个投资填充 InvestmentDetailDto。循环中的代码根据投资值设置 InvestmentDetailDto 的属性。

SectionCodeEnum:这是一个枚举,用于定义“80C”、“80CCC”和“80CCD”等节代码。它还使用 [Display] 属性为枚举值提供人类可读的名称。

PickList:这是一个表示具有 ID 和值的项的类,这是用于在各种上下文中定义选项或项的常见模式。