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);
}
}