使用实体核心框架2.0.0,如何指定在asp.net核心mvc模型中看到的日期类型上看到的min属性?

时间:2017-08-26 01:51:03

标签: asp.net-core-mvc

[Display(Name = "Due Date")]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
[DataType(DataType.Date)]
public DateTime? DueDate { get; set; }

以上是模型中的适用代码。要将type设置为date,请将[DataType(DataType.Date)]设置为上述内容。否则,从asp.net core 2.0.0开始,它们默认输入datetime-local类型的元素,而之前它们只是.net core 1.x中的纯文本框。

我假设我可以在public DateTime? DueDate { get; set; }之上添加另一行来指定将在我的asp.net核心应用程序的视图中填充的min属性

视图中的代码如下:

            <div class="form-group">
            <label asp-for="DueDate" class="pull-left"></label>
            <div class="col-md-10">
                <input asp-for="DueDate" class="form-control" />
                <span asp-validation-for="DueDate" class="text-danger"></span>
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

您的代码在输入中生成type="date",生成浏览器HTML-5 datepicker,它还支持minmax属性。

您可以修改视图以包含这些属性,例如

<input asp-for="DueDate" class="form-control" min="2017-01-01" max="2017-12-31" />

将日期选择限制在今年。请注意,minmax值必须采用ISO(yyyy-MM-dd)格式,并且两者都应该使用(如果不包含这两者,则Chrome日期选择程序有点错误)< / p>

但请注意,type="date"仅在Chrome和Edge中受支持,如果您使用的是IE或FireFox,则只会显示普通的texbox。我建议您考虑使用jQuery datepicker插件(例如jquery-ui),以便您的用户拥有一致的用户界面。