我有以下模型属性和属性:
[DataType(DataType.Date)]
public Nullable<DateTime> DateOfBirth { get; set; }
我的EditScreen.cshtml有以下部分来显示出生日期:
<div class="editor-label">
Date of Birth
</div>
<div class="editor-field">
@Html.EditorFor(model => model.DateOfBirth)
@Html.ValidationMessageFor(model => model.DateOfBirth)
</div>
但是,尽管有DataType.Date属性,但页面上会显示完整的日期和时间,例如 06/04/1971 00:00:00
为什么日期的时间部分仍在显示,是否有任何“遗漏”我错过了?
我已经尝试将Nullable更改为日期时间,但没有任何区别。必须有一些基本的东西阻止日期格式化,但我不知道那可能是什么,不知道如何找出。
答案 0 :(得分:1)
您可能只需要创建一个编辑器模板来修改EditorFor中的日期格式。
要执行此操作,请在Views \ Shared下创建一个新文件夹(如果它尚不存在),并将其命名为“EditorTemplates”。在该文件夹中添加一个新的局部视图并将其命名为“DateTime.cshtml”。
在新的“DateTime.cshtml”文件中添加以下代码:
@model System.DateTime ?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty))
答案 1 :(得分:0)
您可以尝试添加
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
答案 2 :(得分:0)
[DataType(DataType.Date)]
(DataFormatString = "{0:MMMMMMMMMM dd,yyyy}")]
public Nullable<DateTime> DateOfBirth { get; set; }
试试这个。