ASP.NET MVC Date属性被忽略

时间:2012-11-28 15:20:17

标签: asp.net asp.net-mvc data-annotations

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

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

3 个答案:

答案 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; }

试试这个。