如何使用内部foreach在asp.net MVC中使用foreach C#

时间:2016-02-20 11:58:11

标签: c# asp.net-mvc foreach

我可以在Razor中查看表格中的表格吗? 例如:

foreach (var item in Model) 
{   
    foreach (var item2 in Model2) 
    {
        //I want to put here last table
    }
}

2 个答案:

答案 0 :(得分:2)

是的,您可以在foreach循环中使用foreach循环。但是,您只能遍历模型中实现IEnumerable接口的属性。以此示例模型为例。

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

并且会员们

    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>

正如您所看到的,我正在迭代所有显示名称和创建详细信息的团队以及每个团队的成员全名

答案 1 :(得分: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>