【问题标题】:MVC How to pass a list of objects in Model and Bind In View CshtmlMVC如何在模型中传递对象列表并在视图Cshtml中绑定
【发布时间】:2017-02-16 12:56:25
【问题描述】:

我想从模型中获取要查看的项目列表,但我没有得到确切的想法 请帮我 我正在添加我的所有课程

下面

    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 类中 Team 值在那里

我的控制器代码如下

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

我想做一个编辑页面,谁能告诉我这个想法

【问题讨论】:

    标签: sql-server asp.net-mvc entity-framework c#-4.0


    【解决方案1】:

    您可以在 razor 视图中遍历各个组。

    @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,因为索引ij是MVC模型绑定器需要的。

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

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

    Model Binding to a List MVC 4

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-20
      • 2019-06-11
      • 2011-10-11
      • 2015-01-28
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      相关资源
      最近更新 更多