2011-11-01 41 views
0

我有一個包含許多行的模型。行中的其中一列顯示數據存儲位置。我想要做的是爲每個數據存儲位置提供一個數據表。有沒有一些簡單的方法可以用Razor做到這一點?這是我所擁有的一個簡單例子。如何使用Razor語法將列表顯示爲多個表格?

<table> 
@foreach (var item in Model) {  
    <tr> 
     <td>@item.Datastore</td> 
     <td>@item.xxx</td> 
     <td>@item.yyy</td> 
    </tr> 
} 
</table> 

回答

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> 
    } 
} 
相關問題