目前我有这个日期选择器,它会在弹出日历上突出显示今天的日期,但日期onLoad的编辑器显示DD / MM / YYYY,而不是在页面加载时自动填充它。我该如何解决这个问题?
这是我在html文件中显示我的日期选择器的方式:
<div class="form-group">
@Html.LabelFor(model => model.date, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.date)
@Html.ValidationMessageFor(model => model.date)
</div>
</div>
这就是我定义它的方式:
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
答案 0 :(得分:1)
您的EditorFor()
方法正在为您的浏览器呈现日期选择器的HTML-5实现,这要求格式为yyyy-MM-dd
(ISO格式)。
将属性更改为
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")
public DateTime date { get; set; }
将在浏览器文化中显示日期
或者你可以使用
@Html.TextBoxFor(m => m.date, "{0:yyyy-MM-dd}", new { @type = "date" })
如果您不想更改将在DisplayFor()
方法中使用的格式。
另请注意,type="date"
仅支持Chrome和Edge