Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC-将多个模型项添加到单个列中_C#_Asp.net_Asp.net Mvc_Entity Framework_Razor - Fatal编程技术网

C# ASP.NET MVC-将多个模型项添加到单个列中

C# ASP.NET MVC-将多个模型项添加到单个列中,c#,asp.net,asp.net-mvc,entity-framework,razor,C#,Asp.net,Asp.net Mvc,Entity Framework,Razor,对于我的MVC项目,我希望以以下格式向表中添加模型元素: ╦═══════════╦ ║ Season # ║ <-------(SeasonID Selector DDL) ╩═══════════╩ ╔═══╦═══════════╦═════════════════════════╗ ║ ║ Team Name ║ Player Names ║ ╠═══╬═══════════╬═════════════════════════╣ ║ 1 ║ GSW

对于我的MVC项目,我希望以以下格式向表中添加模型元素:

╦═══════════╦ ║ Season # ║ <-------(SeasonID Selector DDL) ╩═══════════╩ ╔═══╦═══════════╦═════════════════════════╗ ║ ║ Team Name ║ Player Names ║ ╠═══╬═══════════╬═════════════════════════╣ ║ 1 ║ GSW ║ PlayerA PlayerB PlayerC ║ ║ ║ ║ PlayerD Player E ║ ║ 2 ║ OKC ║ PlayerA PlayerB PlayerC ║ ║ ║ ║ PlayerD Player E ║ ║ 3 ║ CLE ║ PlayerA PlayerB PlayerC ║ ║ ║ ║ PlayerD Player E ║ ║ 4 ║ SAS ║ PlayerA PlayerB PlayerC ║ ║ 5 ║ TOR ║ PlayerA PlayerB PlayerC ║ ╚═══╩═══════════╩═════════════════════════╝ 索引:

@using (Html.BeginForm())
{
    <p>
        @Html.DropDownList("seasonID", (SelectList)ViewBag.SeasonList, new { onchange = "this.form.submit();" })
    </p>
}
<table class="table"> 
    <tr>
        <th></th>
        <th>
            @Html.DisplayNameFor(model => model.SeasonTeamID)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.SeasonTeam.Team.TeamName)
        </th>
        <th>
            @Html.DisplayName("Player List")
        </th>

        <th></th>
    </tr>

@{ 
    int rowCount = 0;
    var team = (List<SeasonTeam>)ViewBag.teamList;
}
@foreach (var t in team)
{
    <tr>
        <td>@(rowCount += 1)</td>
        <td>
            @Html.DisplayFor(modelItem => t.SeasonTeamID)
        </td>
        <td>
            @Html.DisplayFor(modelItem => t.Team.TeamName)
        </td>
        <td>
            @* Loop through each player in roster *@
            @{ var modelList = Model.ToList();}
            <div class="row">
                @for (int i = 0; i < modelList.Count; i++)
                {
                    if (modelList[i].SeasonTeamID == t.SeasonTeamID)
                    {
                        if (i % 3 == 0 && i != 0)
                        {
                            @:</div><div class="row"> 
                            <div class="col-md-3">@modelList[i].Player.LastName</div>
                        }
                        else
                        {
                            <div class="col-md-3">@modelList[i].Player.LastName</div>
                        }                        
                    }                    
                }
            </div>
            @*End loop*@
        </td>

        <td>
            @Html.ActionLink("Edit", "Edit", new { id = t.SeasonTeamID }) |
            @Html.ActionLink("Details", "Details", new { id = t.SeasonTeamID })
        </td>       
    </tr>
}

问题是,我不想在每次迭代一个球队名称时都仔细检查
模型中的每个球员(并将其
季节性团队ID
与球队列表中的
季节性团队ID
),尤其是当每个赛季都有大约100多人参加比赛时。是否有替代方法?

最初的建议是改变这一点:

var modelList = Model.ToList();
为此:

var modelList = Model.Where(x => x.SeasonTeamID == t.SeasonTeamID).ToList();
因此,modelList现在将只包含您感兴趣的玩家,因此您不必迭代其中的每一个玩家,您将能够消除这种“如果”:

if (modelList[i].SeasonTeamID == t.SeasonTeamID)

哇,这是一个如此简单的解决方案。谢谢!我对这个项目相当陌生(在这个项目上工作了大约2个月),我认为我只能在控制器中执行
。其中(x=>x.seasureteamid==t.seasureteamid)
var modelList = Model.Where(x => x.SeasonTeamID == t.SeasonTeamID).ToList();
if (modelList[i].SeasonTeamID == t.SeasonTeamID)