Если у меня в классе модели есть свойство типа DateTime
, как я могу отобразить его в определенном формате - например, в формате, который возвращает ToLongDateString()
?
Я пробовал это ...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
... что вызывает исключение, поскольку выражение должно указывать на свойство или поле.И это ...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
..., которое не выдает исключение, но визуализированный вывод пуст (хотя val
содержит ожидаемое значение, как я мог видеть в отладчике).
Спасибо за советы заранее!
Редактировать
ToLongDateString
является только примером.На самом деле я хочу использовать вместо ToLongDateString
собственный метод расширения DateTime
и DateTime?
:
public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
if (dateTime.TimeOfDay == TimeSpan.Zero)
return dateTime.ToString("d");
else
return dateTime.ToString("g");
}
public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
if (dateTime.HasValue)
return dateTime.Value.FormatDateTimeHideMidNight();
else
return "";
}
Итак, я думаю, что не могу использовать атрибут DisplayFormat
и DataFormatString
параметр в свойствах ViewModel.