我目前正在尝试在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>
这在“详细信息”模式下按预期工作。但是,当我进入“编辑”模式时,该字段显示如下
所需的日期格式显示在文本框中,以及看起来像默认日期选择器的内容。这显然不是我想要的。我只是想要正确格式化日期。我还计划使用jQuery日期选择器,所以我真的不想要默认的日期选择器。
有没有人有解决方案?
答案 0 :(得分:0)
最直接的解决方案(假设您希望让日期的所有编辑字段看起来相同)是为Html.EditorFor()
类型的对象替换DateTime
的模板。这样,您可以在模板本身中构建所需的任何行为,从而将视图逻辑保留在视图层中。
这样做的基本方法是创建一个名为DateTime.cshtml
的文件(我认为 - 使用WebForms视图引擎时它是DateTime.ascx
,但是你正在使用Razor ...)并将其放置在~/Views/Shared/EditTemplates
。
Brad Wilson有excellent guide on his blog我强烈建议您退房。