我目前工作的一个MVC项目,其中我期待显示薄膜以及它们将被编程播放时间的列表。为了实现这一目标,我对此有一个基本表(汇总):
+-------------+----------------+
| FilmID (int)| Time (datetime)|
+-------------+----------------+
| 1 | 01:00 |
| 1 | 03:00 |
| 2 | 02:30 |
+-------------+----------------+
此链接到“FilmStore”,其中基本上给出了与大纲/风格/等信息。
控制器
我已经设置了一个控制器,与所述自动生成的代码:
public ActionResult Index()
{
var filmShowings = db.FilmShowings.Include(f => f.FilmStore);
return View(filmShowings.ToList());
}
查看
我已经改变了预设视图
@foreach (var item in Model)
{
<span>@Html.DisplayFor(modelItem => item.FilmID)</span>
<div class="time slot">
@Html.DisplayFor(modelitem => item.Time).ToString().Substring(0, 5)
</div>
}
我想要什么
我期待在视图内通过filmID
。因此,filmID
将显示在一个范围内,并且每个具有该filmID的记录都将显示在一个div内。喜欢的东西:
1
01:00
03:00
2
02:30
我已经试过
我曾尝试到groupby
子句添加到控制器:
.GroupBy(f => f.FilmID);
,并改变了我的看法到:
@foreach (var item in Model)
{
<span>@Html.DisplayFor(modelItem => item.FilmID)</span>
@foreach(var group in groupItem.FilmID){
<div class="time slot">
@Html.DisplayFor(myitem => group.Time).ToString().Substring(0, 5)
</div>
}
}
我推测一个嵌套for循环将允许我添加这个分组。但是,这不可避免地失败了。任何人都可以将我指向正确的方向吗?
'CS1579:foreach语句无法在类型“bwebsite.Content.Film”的变量操作,因为“bwebsite.Content.Film”不包含“GetEnumerator''一个公共定义 - 我错过了什么克里斯? (指第三行,“组”) – jbutler483