0

我有一個SearchResult對象的集合,其中包含任意數量的動態屬性的字典,如Name,Address,Food Preference或其他任何東西。我想動態創建列(基於Columns集合)並在MvcContrib網格中顯示屬性。MvcContrib網格 - 問題綁定到字典中的動態值

@Html.Grid(Model.SearchResults).Columns(column => 
{ 
    foreach (var col in Model.Columns) 
    { 
     column.For(sr => sr.GetAttribute(col.Name)).Named(col.Title); 
    } 
}) 

我遇到的問題是,在網格中的每一行完全充滿只有最後一個屬性,因爲這樣的:

Name   Address  Telephone 
____________________________________________ 
01496 555555 01496 555555 01496 555555 
01496 444444 01496 444444 01496 444444 
01496 111111 01496 111111 01496 111111 

我在做什麼錯???

+0

你的模型看起來怎麼樣現在還不清楚。請張貼他們的結構。 – 2012-03-14 07:23:36

回答

1

回答我的問題...

這是一個「訪問修改關閉」的問題。列變量需要被分配到一個局部變量foreach循環中,像這樣:

@Html.Grid(Model.SearchResults).Columns(column => 
{ 
    foreach (var col in Model.Columns) 
    { 
     var localCol = col; 
     column.For(sr => sr.GetAttribute(localCol.Name)).Named(localCol.Title); 
    } 
}) 
+0

你可以展示你的'Model.SearchResults'和'Model.Columns'對象是怎麼樣的? – Dmitry 2012-12-05 23:55:32

+0

我不再具有將其更改爲使用WebGrid的代碼(如果我沒有記錯,證明它更容易進行服務器端分頁)。 Columns集合是List ,其中Column是一個非常標準的類,具有Name和Title的基本屬性。 – pfeds 2012-12-07 01:33:07