Asp.net mvc 4 在MVC中填充嵌套列表

Asp.net mvc 4 在MVC中填充嵌套列表,asp.net-mvc-4,c#-4.0,visual-studio-2012,generic-collections,Asp.net Mvc 4,C# 4.0,Visual Studio 2012,Generic Collections,填充嵌套列表时遇到问题 对象图如下所示: 路线⇒ 部分⇒ 坐标 每当我尝试填充С坐标列表时,它只会覆盖上一条记录,最后只给出最后一条坐标记录。但我要所有的坐标 这是我的控制器代码: List<RequestRouteDataClass> result = new List<RequestRouteDataClass> { new RequestRouteDataClass() { RouteRequestId = objRouteMana

填充嵌套列表时遇到问题

对象图如下所示:

路线⇒ 部分⇒ 坐标

每当我尝试填充С坐标列表时,它只会覆盖上一条记录,最后只给出最后一条坐标记录。但我要所有的坐标

这是我的控制器代码:

List<RequestRouteDataClass> result = new List<RequestRouteDataClass> {  
     new RequestRouteDataClass() { 
         RouteRequestId = objRouteManagement.RouteRequestId, 
         RouteName = objRouteManagement.RouteName, 
         RouteDescription = objRouteManagement.RouteDescription, 
         RouteSections = new List<RouteSections> { 
         new RouteSections() { 
             Route_Sections_Id = objSections.Route_Sections_Id, 
             Section_Speed = objSections.Section_Speed, 
             Section_Description = objSections.Section_Description,                                                     
             RouteCordinatesSections = new List<SectionCoordinatesRelationData> { 
                 new SectionCoordinatesRelationData() { 
                     SectionCoordinate_Relat_Id = objSectionsCordinates.SectionCoordinate_Relat_Id, 
                     CoordinateLat = objSectionsCordinates.CoordinateLat, 
                     CoordinateLag = objSectionsCordinates.CoordinateLag  
                 }
             }
         }
     } 
 }

首先:间距有助于编辑的可读性:但我看到您已经在问题中解决了这一问题:

 List<RequestRouteDataClass> result = new List<RequestRouteDataClass> 
 { 
     new RequestRouteDataClass() 
     {
         RouteRequestId = objRouteManagement.RouteRequestId, 
         RouteName = objRouteManagement.RouteName, 
         RouteDescription = objRouteManagement.RouteDescription, 
         RouteSections = new List<RouteSections> 
         { 
             new RouteSections()  
             { 
                 Route_Sections_Id = objSections.Route_Sections_Id, 
                 Section_Speed = objSections.Section_Speed, 
                 Section_Description = objSections.Section_Description,                                                     
                 RouteCordinatesSections = new List<SectionCoordinatesRelationData> 
                 { 
                     new SectionCoordinatesRelationData() 
                     { 
                         SectionCoordinate_Relat_Id = objSectionsCordinates.SectionCoordinate_Relat_Id, 
                         CoordinateLat = objSectionsCordinates.CoordinateLat, 
                         CoordinateLag =objSectionsCordinates.CoordinateLag 
                     } 
                 } 
             }
         } 
     }
 };
下一步:您对上面所做的是使用每个列表中的单个元素启动列表。如果你想要更多的元素,你必须添加它们。我建议使用foreach和Add功能来填充列表


从您的示例来看,不清楚源数据是如何存储的,但如果您有多个数据,我希望这些数据也在列表或某种数组中。

如果您想使用嵌套列表

您的模型包含=>

您的代码到嵌套列表=>


希望这就是你想要的。

谢谢你为我工作。。。我认为调用构造函数是关键。
public class MainModelToUse
    {
        public MainModelToUse()
        {
            FirstListObject = new List<FirstListClass>();
        }

        public List<FirstListClass> FirstListObject { get; set; }
    }


   public class FirstListClass
    {
        public FirstListClass()
        {
            SecondListObject = new List<SecondListClass>();
        }

        public List<SecondListClass> SecondListObject { get; set; }
    }


  public class SecondListClass
     {
        public SecondListClass()
        {
            ThirdListObject = new List<ThirdListClass>();
        }

        public List<ThirdListClass> ThirdListObject { get; set; }
    }


   public class ThirdListClass
    {

    }
        FirstListClass vmFirstClassMenu = new FirstListClass();
            vmFirstClassMenu.SecondListClass = new List<SecondListClass>();
            FirstListClass vmFirstClassCategory = new FirstListClass();


            var dataObject1 = //Get Data By Query In Object;

            foreach (Model objModel in dataObject1)
            {
                vmFirstClassCategory = new FirstListClass
                {
                    //Your Items
                };

                var DataObject2 = //Get Data By Query In Object;

                vmFirstClassCategory.SecondListClass = new List<SecondListClass>();

                foreach (SecondListClass menuItem in DataObject2)
                {
                    SecondListClass vmFirstClassMenuItem = new SecondListClass
                    {
                       //Your Items
                    };

                    var DataObject3 = //Get Data By Query In Object;
                    vmFirstClassMenuItem.ThirdListClass = new List<ThirdListClass>();

                    foreach (ThirdListClass price in DataObject3)
                    {
                        ThirdListClass vmThirdClassobj = new ThirdListClass
                        {
                            //Your Items
                        };

                        vmFirstClassMenuItem.ThirdListClass.Add(vmThirdClassobj);
                    }
                    vmFirstClassCategory.SecondListClass.Add(vmFirstClassMenuItem);
                }                
            }