2017-03-02 207 views
2

我在ASP.NET MVC中有一個視圖,它使用2個單獨的列表訪問視圖模型。我遇到的問題是從列表中訪問列標題以在每個數據集上顯示它們。 foreach語句準確顯示數據,但目前我在列標題上也使用了foreach語句(顯示名稱)。我需要修改此語句以訪問列表(NotesList)並僅在td語句中顯示的數據集之上顯示它們的一個迭代。感謝您的反饋。視圖如下。顯示來自不同列表的多個表的列標題

@model Risk.ViewModel.ListCatViewModel 
.... 
<table class="table"> 
    @foreach (var item in Model.NotesList) 
    { 
     <tr> 
      <th>@Html.DisplayNameFor(modelItem => item.Category)</th> 
      <th>@Html.DisplayNameFor(modelItem => item.CountOfLoans)</th> 
      .... 
     </tr> 
    } 
    @foreach (var item in Model.NotesList) 
    { 
     <tr> 
      <td>@Html.DisplayFor(modelItem => item.Category)</td> 
      <td>@Html.DisplayFor(modelItem => item.CountOfLoans)</td> 
      .... 
     </tr> 
    } 
</table> 
+0

我通過在每個html標記中手動輸入列標題來實現它。然而,我正在尋找一個自動化的解決方案,就好像我改變了與sql server綁定的類,這將改變列,然後我將不得不改變視圖中的每個列標題與具有自動化解決方案。 – RedBeardTX

回答

1

可以使用

<th>@Html.DisplayNameFor(m => m.NotesList.FirstOrDefault().Category)</th> 
<th>@Html.DisplayNameFor(m => m.NotesList.FirstOrDefault().CountOfLoans)</th> 
.... 

注意這部作品甚至是FirstOrDefault()回報創建<th>元素null(即因爲集合爲空)從對象,因爲HtmlHelper使用價值ModelMetadata

附註:建議你將標題元素包裹在一個<thead>

+0

它工作。謝謝 – RedBeardTX