asp.net mvc foreach很多对很多过滤器

时间:2013-11-15 02:09:34

标签: c# asp.net asp.net-mvc

我的代码在视图中:

@foreach (var item in Model._games)
    {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.Title)
            </td>

            <td>
                @foreach (var item2 in Model._days.Where(x => x.Games.Any(u=> u.Id == item.Id)))
                {
                    @item2.CutOffTime;
                }
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Price)
            </td>
            <td>
            </td>
        </tr>
    }

显示第二个foreach并像我一样过滤它的正确方法是什么?如果我不进行过滤(仅使用Model._days,它会显示所有天数,但是当我使用带有ID的Where过滤器时,您可以在第二个foreach中看到它,但它没有显示任何内容。

由于

2 个答案:

答案 0 :(得分:0)

可能的问题:
1.您正在使用延迟加载,忘记使用.Games方法(EF)或Model._days(LINQ 2 SQL)填充Include LoadWith属性 2.游戏是空的 3.游戏不是空的,但你设置的过滤器不正确 4.您已使用不正确的数据填充Model._gamesModel._days.Games

故障排除:在第二个foreach设置断点,并查看两个集合中的实际值。

答案 1 :(得分:0)

  • 将您的第二个foreach更改为

     @foreach (var item2 in Model._days)
     {
       if(item2.Games.select(e=>e.Id).Cotains(item.Id)
      {
         @item2.CutOffTime;
      }
     }