2016-02-20 129 views

回答

2

是的,你可以在foreach循環中使用foreach循環。但是,您只能遍歷實現IEnumerable接口的Model的屬性。以此示例模型爲例。

public class Team 
{ 
    public int ID { get; set; } 
    public string Name { get; set; }  
    public DateTime Founded { get; set; } 
    public List<Member> Members { get; set; } 
} 

而且Member.cs是

public class Member 
{ 
    public int ID { get; set; } 
    public string FullNames { get; set; } 
    public string Role { get; set; } 
    public DateTime DateJoined { get; set; } 
} 

在你看來,如果你想遍歷的個集合並列出成員的名字,那麼你可以做到這一點

@model IEnumerable<Team> 

<table> 
<thead> 
    <tr> 
     <th>@Html.DisplayNameFor(a => a.Name)</th> 
     <th>@Html.DisplayNameFor(a => a.Founded)</th> 
     <th>Players</th> 
    </tr> 
</thead> 
    @foreach (var team in Model) 
    { 
     <tr> 
      <td>@Html.DisplayFor(a => team.Name)</td> 

      <td>@Html.DisplayFor(a => team.Founded)</td> 

      <td> 
       @foreach (var member in team.Members) 
       { 
        <div> 
         @Html.DisplayFor(a => member.FullNames) 
        </div> 
       } 
      </td> 

     </tr>   
    }   
</table> 

正如你所看到的,我將遍歷所有顯示姓名和成立細節的團隊以及每個團隊成員的全名

0

如果你想建立的表,你可以用表做標籤,但我建議使用Html WebGrid

<table> 
    <tr> 
     <th> 
      name 
     </th> 
    </tr> 
    @foreach (var item in Model.Items) 
    { 
     @Html.HiddenFor(modelItem => item.Id) 
     <tr> 
      <td> 
      @foreach (var item2 in item.AnotherCollection) 
      { 
       ... 
      } 
      </td> 
     </tr> 
    } 
</table> 
+0

我想把這裏的foreach放在​​ – Sultan

+0

@سلطاناليامي看範例 –

+0

@AndreyBurykin我想知道你是用阿拉伯文輸入OP的名字嗎? –