我有一个包含许多行的模型。该行中的一列显示数据存储位置。我想要做的是为每个数据存储位置提供一个数据表。是否有一些简单的方法可以用Razor做到这一点?这是我所拥有的简化示例。
<table>
@foreach (var item in Model) {
<tr>
<td>@item.Datastore</td>
<td>@item.xxx</td>
<td>@item.yyy</td>
</tr>
}
</table>
答案 0 :(得分:0)
如果您没有在模型中获得可用的单个数据源列表,则必须直接从模型中提取它们。您可以使用Linq并使用Distinct方法查找唯一值。
一旦有了这些,您就可以遍历列表并为每个数据存储创建单独的表,并根据数据存储值使用模型中的过滤值填充它们。
这样的事情应该有效:
@{
var dataStores = Model.Select(i => i.DataStore).Distict();
foreach(var dataStore in dataStores) {
<table>
@foreach (var item in Model.Where(i => i.DataStore == dataStore)) {
<tr>
<td>@item.Datastore</td>
<td>@item.xxx</td>
<td>@item.yyy</td>
</tr>
}
</table>
}
}