在编辑器onload中显示Datepicker而不需要用户选择

时间:2016-03-15 19:32:40

标签: c# asp.net-mvc datepicker

目前我有这个日期选择器,它会在弹出日历上突出显示今天的日期,但日期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}")]

1 个答案:

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