MVC如何传递模型中的对象列表并绑定查看Cshtml

问题描述:

我想从Model中获取项目列表以查看,但我没有得到该确切想法 请帮助我 我正在添加我的所有类MVC如何传递模型中的对象列表并绑定查看Cshtml

下面

public class DivisionDTO 
    { 
     public Guid Id { get; set; } 
     public string Name { get; set; } 
     public List<GroupDTO> Groups { get; set; } 
    } 
    public class GroupDTO 
    { 
     public Guid Id { get; set; } 
     public string Name { get; set; } 
     public List<Team> Teams { get; set; } 
    } 
public class Team 
    { 
     public int ID { get; set; } 
     public string TeamName { get; set; } 
     public int GroupId { get; set; } 
     public int DivisionId { get; set; } 
     public string pld { get; set; } 
     public string W { get; set; } 
     public string D { get; set; } 
     public string L { get; set; } 
     public string GF { get; set; } 
     public string GA { get; set; } 
     public string GD { get; set; } 
     public string Pts { get; set; } 
    } 

模型本身是一个项目列表,每个项目包含子项目的名单。 在DivisionDTO类列表GroupDTO价值是存在的,在GroupDTO一流团队价值是有

我控制器以下

public ActionResult EditGroup() 
    { 
     CreatingLeague.Models.DivisionDTO division = new CreatingLeague.Models.DivisionDTO(); 
     division.Id = new Guid(); 
     division.Name = "Div"; 
     division.Groups = new List<CreatingLeague.Models.GroupDTO>(); 

     CreatingLeague.Models.Team team = new Models.Team(); 
     team.TeamName = "TeamA"; 
     division.Groups.Add(new CreatingLeague.Models.GroupDTO() { Id = new Guid(), Name = "G1", Teams = new List<Team>() { team } }); 
     return View(division); 
    } 

我想打一个编辑页面任何一个可以给我

的想法码

您可以遍历剃须刀视图中的各个组。

@model DivisionDTO 

@for (var i = 0; i < Model.Groups.Count(); i++) { 

    @Html.EditorFor(m => m.Groups[i].Name) 

    @for (var j = 0; j < Model.Groups[i].Teams.Count(); j++) { 
     @Html.EditorFor(m => m.Groups[i].Teams[j].TeamName) 
    } 
} 

不要使用foreach,因为指数i,由MVC模型绑定器需要j

您的POST操作可以将DivisonDto作为模型,子集合将具有数据。

[HttpPost] 
public ActionResult Save(DivisonDto model) { 
    var firstGroupName = model.Groups[0].Name; 
    // ... 
} 

Model Binding to a List MVC 4