我的代码在视图中:
@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中看到它,但它没有显示任何内容。
由于
答案 0 :(得分:0)
可能的问题:
1.您正在使用延迟加载,忘记使用.Games
方法(EF)或Model._days
(LINQ 2 SQL)填充Include
LoadWith
属性>
2.游戏是空的
3.游戏不是空的,但你设置的过滤器不正确
4.您已使用不正确的数据填充Model._games
或Model._days.Games
故障排除:在第二个foreach
设置断点,并查看两个集合中的实际值。
答案 1 :(得分:0)
将您的第二个foreach更改为
@foreach (var item2 in Model._days)
{
if(item2.Games.select(e=>e.Id).Cotains(item.Id)
{
@item2.CutOffTime;
}
}