忽略 ASP.NET MVC 日期属性



我有以下模型属性和属性:

  [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; }

试试这个。

最新更新