0

我在使用 MVC4 DateTime 对象正确显示日期时遇到了一些问题。

在控制器中,我根据数据库中的正确值设置日期:Birthdate = person.Birthdate

在视图模型中:

[DisplayFormat(DataFormatString = "DD/mm/YY", ApplyFormatInEditMode = true, ConvertEmptyStringToNull = true)]
public DateTime? Birthdate { get; set; }

在视图中:

@using (Html.BeginHorizontalControlFor(m => m.Birthdate))
{
    @Html.EditorFor(model => model.Birthdate)
    @Html.ValidationMessageFor(model => model.Birthdate)
}

输出:

<input class="text-box single-line input-validation-error" data-val="true" data-val-date="The field Birthdate must be a date." id="Birthdate" name="Birthdate" type="datetime" value="DD/mm/YY">

我的日期值在哪里?为什么它不起作用?

4

2 回答 2

3

DD/mm/YY是错误的格式 - 所有组件的大小写都是错误的。你应该使用dd/MM/yy(或类似的东西;我个人建议使用yyyy而不是yy)。有关更多详细信息,请参阅自定义日期/时间格式的 MSDN 文档

另请注意,这是非常特定于文化的 - 您确定这是适合您所针对的所有文化的格式吗?(我怀疑,从可用性的角度来看,使用某种日历控件会更好。)

于 2012-12-13T09:53:10.413 回答
0

我必须修改该属性上 DataFormatString 位的语法才能使其正常工作。尝试:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM-dd-yyyy}")]
于 2012-12-13T17:29:46.617 回答