我有一个具有以下属性的视图模型:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "yyyy-MM-dd", ApplyFormatInEditMode = true)]
public DateTime? ExpirationDate { get; set; }
DataFormatString
是这样的:当在type="date"
输入中填充值时,浏览器会识别它并预先填充日期选择器。在控制器中,运行验证(使用FluentValidation)并添加到ModelState
。如果ModelState
无效,则使用模型重新呈现视图。如果ExpirationDate
上有任何错误,则DataFormatString
似乎不会应用,而html最终会像:
<input class="input-validation-error error-highlight" id="ExpirationDate" name="ExpirationDate" type="date" value="11/2/2015 12:00:00 AM">
其呈现就好像该字段没有值。请注意,如果其他属性存在错误,ExpirationDate
仍会正确格式化。
如果日期无效,我如何确保日期格式正确,以便用户可以轻松修复错误?