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;
// ...
}