使用无序列表创建主详细信息页面

时间:2016-07-01 19:49:49

标签: asp.net-mvc-4 c#-4.0

我在下面有这个课程,并且能够用数据填充它。 DelMaster和DelDetails有相关数据。     不担心数据

        public class Deliverables
        {
            public DeliverablesMaster DelMaster { get; set; }
            public List<DeliverablesDetails> DelDetails { get; set; }
        }

以下是主人的属性。我只会显示两个字段

        public class DeliverablesMaster
        {
            public string  ProjectDeliverablesId { get; set; }
            public string  ProjectId { get; set; }
            public string  DeliverableCategory { get; set; }
            public string  DeliverableText { get; set; }
            public string  DeliverableOrder { get; set; }
            public string  UpsizeTs { get; set; }        
        }

以下是详细信息/子项的属性,并将在一行中显示所有字段

        public class DeliverablesDetails
        {
            public string  ProjectDelivStatusId { get; set; }
            public string  ProjectDeliverableSID { get; set; }
            public string  PDSText { get; set; }
            public string  PDSCurrency { get; set; }        
        }

我希望能够在无序列表中显示它,并将顶部的父项作为标题显示     下面的孩子。我知道它看起来像下面的东西,但不知道如何将它们放在一起。     我怎样才能将这些foreach语句放在一起?我更关注foreach的陈述。

        foreach ()
                {
                <ul>
                    <li>

                    </li>
                    @foreach ()
                    { 
                        <li>
                            <ul>
                                <li> </li>
                                <li> </li>
                                <li> </li>
                                <li> </li>                                  
                            </ul>
                        </li>
                    }
                </ul>
                }

1 个答案:

答案 0 :(得分:0)

实际上你的类的设计是错误的,如果有一个主/细节模型,它需要使用Hierarchical模型。看看这个:

 public class DeliverablesMaster 
        {
            public long    DelMasterId {get; set;}
            public string  ProjectDeliverablesId { get; set; }
            public string  ProjectId { get; set; }
            public string  DeliverableCategory { get; set; }
            public string  DeliverableText { get; set; }
            public string  DeliverableOrder { get; set; }
            public string  UpsizeTs { get; set; }  

            public List<DeliverablesDetails> DelDetails { get; set; }
        }


  public class DeliverablesDetails
        {
            public string  DelDetailId {get; set;}
            public string  ProjectDelivStatusId { get; set; }
            public string  ProjectDeliverableSID { get; set; }
            public string  PDSText { get; set; }
            public string  PDSCurrency { get; set; } 
            public long   DelMasterId  {get; set;}
            public DeliverablesMaster  DelMaster  {get; set;}

        }

然后你可以使用foreach来访问它们:

  @foreach (var m in DeliverablesMaster )
            {
                <ul>
                <li>                  </li>

                @foreach (var d in m.DelDetails )
                {

                   <li>
                        <ul>
                            <li> </li>
                            <li> </li>
                            <li> </li>
                            <li> </li>                                  
                        </ul>
                    </li>

                  }
                </ul>
            }