使用MVC3在运行时设置DateTime显示格式

时间:2013-08-29 22:26:46

标签: c# asp.net-mvc-3 datetime

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

1 个答案:

答案 0 :(得分: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