我正在尝试学习 MVC 并找到一些障碍。
我试图找到一种可维护的方式来呈现按类别标题划分的项目列表。例如:
进入
汤
面包主要的
鸡肉
牛肉
素食沙漠
蛋糕
冰淇淋
类别和项目是单独的模型,项目模型保存类别的 ID。
我想将这些页面提供给熟悉 HTML 但不熟悉 ASP 的人。出于这个原因,我想尽量减少嵌入在页面中的代码。这是迄今为止我最好的,但我不满意必须使用和检查每个项目的变量。
@{string categoryName = null;}
@foreach (var item in Model) {
if (item.CategoryName != categoryName)
{
categoryName = item.CategoryName;
<tr>
<td colspan="5">@Html.DisplayFor(modelItem => categoryName)</td>
</tr>
}
<tr><!-- Display item here --></tr>
}
有没有一种嵌套页面的方法,这样我就可以创建一个遍历每个类别的父页面并调用一个遍历该类别中项目的子页面?例如,类似:
@foreach (var item in Model) {
<tr>
<td colspan="5">@Html.DisplayFor(modelItem => item.Name)</td>
</tr>
@RenderChildren(item.Children);
}