我有一個表,我用MVC 4(Razor)中的foreach循環構建,我試圖將它轉換爲WebGrid以利用排序。目前,我只是試圖讓format
參數爲我工作,以便我可以根據需要重新創建列。下面是一個簡單的例子,我不能去上班:WebGrid格式不輸出任何東西
grid.Column(
columnName: "ChangeId",
format: (item) => @Html.DisplayFor(m => (item as ChangeStateViewModel).ChangeId)
)
這沒什麼輸出渲染期間:
<td></td>
我在做什麼錯?我試過刪除(item) =>
並使用<text>...</text>
,但那也不顯示我的價值。
EDIT
如果我將其更改爲以下,如所提到here,它確實顯示所有在該項目的屬性;然而,從那裏建設只是讓我回到我的位置。
format: @<text>@Html.DisplayFor(x => item)</text>
EDIT2
format: @<text>@item.ChangeId</text>
作品,當然,但不給我提供DisplayTemplate的能力。
EDIT3
看起來(item as ChangeStateViewModel).ChangeId
是給我NULL
..但爲什麼呢?如果我只是使用@item.ChangeId
,這很有價值。
EDIT4
它看起來像提供的默認項(當你使用@<text>...</text>
)是System.Web.Helpers.WebGridRow
,這就是爲什麼EDIT3規定,它的行爲。像下面這樣的東西可以工作,但只有當你把它發送到DisplayTemplate時才行;出於某種原因,它不會顯示,如果您刪除該零件的, "DisplayAny"
部分。
format: @<text>@Html.DisplayFor(x => (item as WebGridRow)["ChangeId"], "DisplayAny")</text>
這確實讓EDIT2相當混亂,雖然。