我正在渲染一个包含DateTime值的输入控件:
[DataType(DataType.Date)]
public DateTime? ScheduledDateTime { get; set; }
应用于输入的格式存储为用户首选项,在运行时从数据库中检索。
所以,我在运行时得到以下值:
YYYY-MM-DD
实际格式不能承受,如何告诉我的模型绑定器按指定格式化DateTime?我发现的所有示例都依赖于设置DateFormatString属性,但这只能使用编译时常量设置。这使得它无法用于我的目的。
覆盖默认模型绑定器的东西?任何人都有一个例子,我无法将其中一个用谷歌搜索。
编辑:也许我创建了一个新的HtmlHelper,它将在运行时处理转换?
EDIT2:很确定我会像这样去做。原谅过于冗长的命名惯例:
<%= Html.TextBoxFor(model => model.ScheduledDateTime, string.Format("{0:" + User.GetDateFormatStringAsCSharpFormat(SessionManager.Default.User.DateFormat)+ "}", Model.ScheduledDateTime))%>
答案 0 :(得分:3)
这使用Razor语法但适用相同的原则
@{
var dateFormat = (DateTime)Viewbag.PreferredDateFormatForUser //Just grab it from where ever you have it
}
@Html.TextBox("ScheduleDateTime", model.ScheduleDateTime.ToString(dateFormat))
以下是自定义日期时间格式字符串
的参考