在 DateTime 模型中使用数据注释
Using Data annotation in Model for DateTime
我正在使用以下代码在我的剃刀视图
中弹出日期的日历
型号
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
[DataType(DataType.Date)]
public Nullable<System.DateTime> EndTime { get; set; }
查看
<div class="form-group">
@Html.LabelFor(model => model.EndTime, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-4">
@Html.EditorFor(model => model.EndTime, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EndTime, "", new { @class = "text-danger" })
</div>
</div>
现在我想使用 DateTime 而不是 Date.What 应该是 DataFormat 字符串吗?
我的尝试
Display(Name = "End Date Time")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}{1:HH/mm}")]
[DataType(DataType.DateTime)]
我收到格式异常?
您的 EditorFor()
方法使用 type="date"
呈现输入,因为 [DataType(DataType.Date)]
属性,这将生成浏览器 HTML-5 日期选择器(但这仅受支持在 Chrome 和边缘)。
要生成 HTML-5 日期时间选择器,您需要使用 type = "datetime-local"
呈现输入,但没有数据注释属性。相反,您需要自己生成 type
属性。
@Html.TextBoxFor(m => m.EndTime, "{0:s}", new { @type = "datetime-local", @class = "form-control" })
注意 "{0:s}"
是 "{0:yyyy-MM-ddTHH:mm:ss}"
的快捷方式,将以浏览器文化显示日期和时间。另请注意,您不需要 [DataType]
属性或 [DisplayFormat]
属性中的 ApplyFormatInEditMode = true
属性,因为它们仅适用于 EditorFor()
我正在使用以下代码在我的剃刀视图
中弹出日期的日历型号
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
[DataType(DataType.Date)]
public Nullable<System.DateTime> EndTime { get; set; }
查看
<div class="form-group">
@Html.LabelFor(model => model.EndTime, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-4">
@Html.EditorFor(model => model.EndTime, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.EndTime, "", new { @class = "text-danger" })
</div>
</div>
现在我想使用 DateTime 而不是 Date.What 应该是 DataFormat 字符串吗?
我的尝试
Display(Name = "End Date Time")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}{1:HH/mm}")]
[DataType(DataType.DateTime)]
我收到格式异常?
您的 EditorFor()
方法使用 type="date"
呈现输入,因为 [DataType(DataType.Date)]
属性,这将生成浏览器 HTML-5 日期选择器(但这仅受支持在 Chrome 和边缘)。
要生成 HTML-5 日期时间选择器,您需要使用 type = "datetime-local"
呈现输入,但没有数据注释属性。相反,您需要自己生成 type
属性。
@Html.TextBoxFor(m => m.EndTime, "{0:s}", new { @type = "datetime-local", @class = "form-control" })
注意 "{0:s}"
是 "{0:yyyy-MM-ddTHH:mm:ss}"
的快捷方式,将以浏览器文化显示日期和时间。另请注意,您不需要 [DataType]
属性或 [DisplayFormat]
属性中的 ApplyFormatInEditMode = true
属性,因为它们仅适用于 EditorFor()