2017-02-16 8 views
0

モデルリストからアイテムのリストを取得したいが、その正確なアイデアが得られない 助けてください 私はすべてを追加しています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); 
    } 

に従っている私のコントローラのコード

答えて

2

剃刀ビューで個々のグループをループすることができます。

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

指標ijは、MVCのmodelbinderによって必要とされているので、foreachを使用しないでください。

POSTアクションはDivisonDtoをモデルとすることができ、子コレクションにはデータが含まれます。

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

Model Binding to a List MVC 4

を参照してください。
関連する問題