MVC Foreach来自数据库的独特价值

时间:2014-10-27 03:06:33

标签: c# asp.net-mvc linq

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

  

链接

     

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>
}

我做错了什么?

2 个答案:

答案 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)
    }
    }