我有以下模型属性和属性:
[DataType(DataType.Date)]
public Nullable<DateTime> DateOfBirth { get; set; }
My 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 属性,页面上仍会显示完整的日期和时间,例如1971/04/06 00:00:00
为什么仍然显示日期的时间部分,我错过了什么"陷阱"吗?
我尝试将 Nullable 更改为日期时间,但没有任何区别。一定有什么基本的东西阻止了日期被格式化,但我不知道那可能是什么,也不知道如何找出来。
您可能只需要创建一个编辑器模板来修改编辑器中的日期格式。
为此,请在"视图\共享"下创建一个新文件夹(如果尚不存在),并将其命名为"编辑器模板"。在该文件夹中添加新的部分视图并将其命名为"DateTime.cshtml"。
在新的"DateTime.cshtml"文件中添加以下代码:
@model System.DateTime ?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty))
您可以尝试添加
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
(DataFormatString = "{0:MMMMMMMMMM dd,yyyy}")]
public Nullable<DateTime> DateOfBirth { get; set; }
试试这个。