编辑模式下的MVC日期格式问题

时间:2013-03-27 23:04:08

标签: asp.net-mvc

我目前正在尝试在ASP.NET MVC应用程序中设置日期格式。

我使用以下代码来完成此操作

模型:

[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode=true)]
public Nullable<System.DateTime> Date_Of_Birth { get; set; }

查看:

<div class="editor-field">
            @Html.EditorFor(model => model.Date_Of_Birth)
            @Html.ValidationMessageFor(model => model.Date_Of_Birth)
        </div>

这在“详细信息”模式下按预期工作。但是,当我进入“编辑”模式时,该字段显示如下

enter image description here

所需的日期格式显示在文本框中,以及看起来像默认日期选择器的内容。这显然不是我想要的。我只是想要正确格式化日期。我还计划使用jQuery日期选择器,所以我真的不想要默认的日期选择器。

有没有人有解决方案?

1 个答案:

答案 0 :(得分:0)

最直接的解决方案(假设您希望让日期的所有编辑字段看起来相同)是为Html.EditorFor()类型的对象替换DateTime的模板。这样,您可以在模板本身中构建所需的任何行为,从而将视图逻辑保留在视图层中。

这样做的基本方法是创建一个名为DateTime.cshtml的文件(我认为 - 使用WebForms视图引擎时它是DateTime.ascx,但是你正在使用Razor ...)并将其放置在~/Views/Shared/EditTemplates

Brad Wilson有excellent guide on his blog我强烈建议您退房。