我的数据库中有一个看起来像这样的表:
链接
LINKSID
TvID(外键)
季
集
链接
现在我试图在我的视图中使用foreach语句,以便在我的页面上看起来像这样。
第1季
第1集
第2集
第3集
第2季
第1集
第2集
第3集
但我能得到的只是
第1季第1集
第1季第2集
第1季第3集
第2季第1集
第2季第2集
第2季第3集
所以经过一些谷歌搜索后,我现在得到了这样的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>
}
我做错了什么?
答案 0 :(得分:2)
你想要这样的东西:
@{
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)
}
}
答案 1 :(得分:0)
您只需尝试此代码
@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)
}
}