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
,“季节”,这是用于分组的关键)。您需要的另一件事是分组的结果,即实际的剧集。因此,您可以枚举每个季节,然后枚举分组季节中的每个剧集。这可能会有帮助: