0

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

  [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 更改为日期时间,但没有任何区别。必须有一些基本的东西阻止日期被格式化,但我不知道那可能是什么,也不知道如何找出来。

4

3 回答 3

1

您可能只需要创建一个编辑器模板来修改 EditorFor 中的日期格式。

为此,请在 Views\Shared 下创建一个新文件夹(如果它不存在)并将其命名为“EditorTemplates”。在该文件夹中添加一个新的局部视图并将其命名为“DateTime.cshtml”。

在新的“DateTime.cshtml”文件中添加以下代码:

@model System.DateTime ?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToShortDateString() : string.Empty))
于 2012-11-28T16:21:48.537 回答
0

您可以尝试添加

   [DataType(DataType.Date)]
   [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
于 2012-11-28T15:27:10.943 回答
0
[DataType(DataType.Date)]
(DataFormatString = "{0:MMMMMMMMMM dd,yyyy}")]
public Nullable<DateTime> DateOfBirth { get; set; }

尝试这个。

于 2012-11-30T12:24:57.060 回答