使用EditorFor时,日期默认保持为“ dd / mm / yyyy”

时间:2019-03-06 10:03:44

标签: c# asp.net-mvc datetime

我正在创建一个页面,可以在其中编辑配置文件。 一切正常,除了以下几点: 在您可以编辑出生日期的字段上,该值将默认使用通用的“ dd / mm / yyyy”字母,而不是数据库中的实际值。

仅在另一页上显示值时,没有问题。 我尝试更改模型的显示格式,尝试更改全局文件中的语言环境时区,尝试先将日期转换为字符串,然后通过正常值字段显示它,并给字段class =“ date”和一堆其他的东西。似乎什么都没用,让我想知道我是否只是想念一些非常愚蠢的东西。

字段生成如下:

<div class="form-group" id="DateOfBirth">
     @Html.LabelFor(model => model.DateOfBirth, htmlAttributes: new { @class = "control-label" })
     @Html.EditorFor(model => model.DateOfBirth, new { htmlAttributes = new { @class = "form-control form-control-sm col-md-3" }})
     @Html.ValidationMessageFor(model => model.DateOfBirth, "", new { @class = "text-danger" })
</div>

这为我提供了一个带有日期选择器的输入字段(这正是我想要的),但是它显示的是“ dd / mm / yyyy”而不是例如:22/05/1987

模型如下:

[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; }

1 个答案:

答案 0 :(得分:1)

This worked for me. Please set attribute DisplayFormat on your DateOfBirth property.

[DataType(DataType.Date)]            
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]            
public DateTime DateOfBirth { get; set; };