У меня есть таблица, которую я построил с использованием цикла foreach в MVC 4 (Razor), и я пытаюсь преобразовать его в WebGrid, чтобы воспользоваться сортировкой. В настоящее время я просто пытаюсь заставить параметр format
работать для меня, чтобы я мог воссоздать столбцы по мере необходимости. Вот простой пример, который я не могу заставить работать:Формат WebGrid не выводит ничего
grid.Column(
columnName: "ChangeId",
format: (item) => @Html.DisplayFor(m => (item as ChangeStateViewModel).ChangeId)
)
Это не выводит ничего во время рендеринга:
<td></td>
Что я делаю неправильно? Я попытался удалить (item) =>
и использовать <text>...</text>
, но это тоже не отображает мою ценность.
РЕДАКТИРОВАТЬ
Если изменить его к следующему, как упомянуто 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 довольно запутанным, хотя.