【发布时间】:2011-08-25 11:47:23
【问题描述】:
如果我的模型类中有 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 "";
}
所以,我认为我不能在 ViewModel 属性上使用 DisplayFormat 属性和 DataFormatString 参数。
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-mvc-3