我有一个cshtml模板页面,该页面将一些项目列表呈现到多个表中。这些表是使用一些自定义分组逻辑创建的。这就是为什么开始表格标签与结束标签不匹配的原因。而且,当我编译打开cshtml文件的项目时,会收到警告“结束标记缺少匹配的开始标记”。
以下查看代码段演示了这种情况:
@model IEnumerable<OpeningClosingTagTestApp.Models.ListItem>
@{
ViewBag.Title = "List";
Layout = null;
}
@{
var prevGroupColumn1 = string.Empty;
var prevGroupColumn2 = string.Empty;
var prevValue = string.Empty;
}
@foreach (var item in Model)
{
if (prevGroupColumn1 != item.GroupingColumn1)
{
if (!string.IsNullOrEmpty(prevGroupColumn2))
{
@:</table>
prevGroupColumn2 = string.Empty;
}
prevGroupColumn1 = item.GroupingColumn1;
<h3>Some header</h3>
}
if (prevGroupColumn2 != item.GroupingColumn2)
{
if (!string.IsNullOrEmpty(prevGroupColumn2))
{
@:</table>
}
prevGroupColumn2 = item.GroupingColumn2;
<h5>Some other header</h5>
@:<table>
<tr>
<th>Grouping Column 1</th>
<th>Grouping Column 2</th>
<th>Value</th>
</tr>
}
<tr>
<td>
@item.GroupingColumn1
</td>
<td>
@item.GroupingColumn2
</td>
<td>
@item.ValueColumn
</td>
</tr>
}
有没有一种方法不会在编译时发出警告?我能想到的是将逻辑放在一些帮助程序类中。但是将这种逻辑放在视图中似乎更加清楚。