#asp.net-mvc-3 #razor #html-helper #webgrid
#asp.net-mvc-3 #бритва #html-помощник #webgrid #razor
Вопрос:
У меня есть следующее свойство в моей модели:
[DisplayFormat(DataFormatString = "{0:d}")]
public DateTime? Date { get; set; }
И я пытаюсь использовать Html.DisplayFor
помощник для использования этой спецификации в столбце WebGrid, вот так:
Sources.Column("Date", "As Of Date", (item) => Html.DisplayFor(x => item))
Когда я запускаю это, я получаю много дополнительной информации в столбце, и дата выводится в виде даты в длинном формате вместо желаемого короткого формата. Результат, который я получаю, заставляет меня подозревать, что DisplayFor просматривает каждое свойство в модели и печатает его, вместо того, чтобы просто смотреть на дату. Зачем ему это делать? Есть ли что-нибудь, что я могу сделать, чтобы использовать DisplayFor в WebGrid?
Когда я пытаюсь указать item.Date
, я получаю ошибку «Дерево выражений может не содержать динамическую операцию»
Ответ №1:
Попробуйте этот фрагмент кода вместо того, что у вас есть сейчас:
Sources.Column( header: "Date", format: ( item -> { return @Html.Raw(item.date.ToString("d")); }))