1

我有一个带有 DateTime 属性的模型:

    public DateTime? DateNaissance { get; set; }

以及带有 @Html.TextBoxFor 属性的视图

@Html.TextBoxFor(model => model.DateNaissance)

我想要的只是输入日期,但是,当我输入 01/06/2012 作为日期时,我在控制器中有“01/06/2012 00:00:00”

我想要的只是获取日期,为什么要添加时间?,如何自动删除它?

我试过没有成功:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]

谢谢

4

2 回答 2

4

您需要将ApplyFormatInEditMode属性的DisplayFormat属性设置为 true,然后使用EditorFor代替TextboxFor

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]    

@Html.EditorFor(model => model.DateNaissance)

更新

如果您需要为每个日期执行此操作,您还可以在 \Views\Shared\EditorTemplates\ 中放置一个名为 DateTime.cshtml 的文件,其中包含以下内容:

@model DateTime?
@Html.TextBox("", (Model.HasValue ? Model.Value.ToString("dd/MM/yyyy") : string.Empty))

当您使用EditorFor.

于 2012-06-24T16:27:13.663 回答
0

值得一提的是,您将始终获得时间,因为您的对象是 DateTime 类型。如果您只想使用日期,在您的控制器上,您只需要使用 DateNaissance.Date 获取日期部分,但同样,该对象将始终包含时间部分

于 2012-06-24T16:26:25.800 回答