1

我正在渲染一个包含 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))%>
4

1 回答 1

3

这使用 Razor 语法,但同样的原则适用

@{
  var dateFormat = (DateTime)Viewbag.PreferredDateFormatForUser //Just grab it from where ever you have it
}


@Html.TextBox("ScheduleDateTime", model.ScheduleDateTime.ToString(dateFormat))

这是自定义日期时间格式字符串的参考

http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

于 2013-08-29T23:19:34.613 回答