C# MVC Foreach数据库中的不同值

C# MVC Foreach数据库中的不同值,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我的数据库中有一个表,看起来有点像这样: @{ var myList = Model.Links .GroupBy(x => x.Season) .Select(x => new { Season = x.Key, Episodes = x }); } @foreach (var season in myList) { <strong>Season @Html.DisplayFor(modelItem => season

我的数据库中有一个表,看起来有点像这样:

@{
    var myList = Model.Links
        .GroupBy(x => x.Season)
        .Select(x => new { Season = x.Key, Episodes = x });
}
@foreach (var season in myList)
{
   <strong>Season @Html.DisplayFor(modelItem => season.Season)</strong>
   foreach(var episode in season.Episodes)
   {
        @Html.DisplayFor(modelItem => item.Episode)
   }
}
链接

LinksID

TvID(外键)

时令

插曲

链接

现在我试图在我的视图中有一个foreach语句,以便在我的页面上看起来像这样

第一季

第一集

第二集

第三集

第二季

第一集

第二集

第三集

然而,我能得到的只是

第一季第一集

第一季第二集

第一季第三集

第二季第一集

第二季第二集

第二季第三集

所以在谷歌搜索之后,我现在有了这样的foreach,但它显然只显示了第一集,而不是我想要的

@foreach (var item in Model.Links.GroupBy(x => x.Season).Select(s => s.First()))
{
<p>Season @Html.DisplayFor(modelItem => item.Season) @Html.DisplayFor(modelItem => item.Episode)</p>
}
@foreach(Model.Links.GroupBy(x=>x.seasure)中的变量项。选择(s=>s.First())
{
Season@Html.DisplayFor(modelItem=>item.Season)@Html.DisplayFor(modelItem=>item.Spidence)

}

我做错了什么?

你想要这样的东西:

@{
    var myList = Model.Links
        .GroupBy(x => x.Season)
        .Select(x => new { Season = x.Key, Episodes = x });
}
@foreach (var season in myList)
{
   <strong>Season @Html.DisplayFor(modelItem => season.Season)</strong>
   foreach(var episode in season.Episodes)
   {
        @Html.DisplayFor(modelItem => item.Episode)
   }
}
@{
var myList=Model.Links
.GroupBy(x=>x.seasure)
.Select(x=>new{seasure=x.Key,sessions=x});
}
@foreach(myList中的var季节)
{
Season@Html.DisplayFor(modelItem=>Season.Season)
foreach(本季var剧集。剧集)
{
@DisplayFor(modeleItem=>item.eposion)
}
}

您只需尝试此代码

            @foreach (var item in Model.Links.GroupBy(x => x.Season).tolist()))
    {
    Season @Html.DisplayFor(modelItem => item.Season) 

    @foreach (var items in Model.Links.where(z=>z.season==itme.season))

    {
            @Html.DisplayFor(modelItem => item.Episode)
    }
    } 

-您是否尝试过@foreach(Model.Links.GroupBy(x=>x.seasure)中的var项。选择(s=>s))。-或者您可以创建一个字典,其中键是季节,值是该季节的所有剧集。如果我使用您提到的foreach,我会得到以下错误
“System.Linq.IGrouping”不包含“seasure”的定义,并且找不到接受“System.Linq.IGrouping”类型的第一个参数的扩展方法“seasure”(您是否缺少using指令或汇编引用?
。我如何创建字典的想法,因为我以前从未这样做过是的,谢谢。只是为了让我更好地理解这一部分实际上做了什么?
Select(x=>new{Season=x.Key,sessions=x})
您可以指定从您感兴趣的分组中选择的内容。在这种情况下,您需要知道现在是什么季节(因此选择
x.Key
,“季节”,这是用于分组的关键)。您需要的另一件事是分组的结果,即实际的剧集。因此,您可以枚举每个季节,然后枚举分组季节中的每个剧集。这可能会有帮助: