如果我在模型类中有一个类型的属性,DateTime该如何以特定格式呈现它(例如,以ToLongDateString()返回格式)?
我已经尝试过了...
@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())
...这将引发异常,因为表达式必须指向属性或字段。和这个...
@{var val = item.MyDateTime.ToLongDateString();
Html.DisplayFor(modelItem => val);
}
...这不会引发异常,但是呈现的输出为空(尽管val包含预期值,如我在调试器中看到的)。
提前感谢您的提示!
编辑
ToLongDateString仅是一个例子。我实际上想要使用的ToLongDateString是DateTimeand 的自定义扩展方法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 "";
}
因此,我认为我无法在ViewModel属性上使用DisplayFormat属性和DataFormatString参数。
猛跑小猪