在 ASP.NET CORE 中,可以使用如下代码来验证非必需日期:
public class MyModel {
// Other properties
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime? MyNullableDate { get; set; }
}
ModelState.IsValid
进行验证,如下所示:[HttpPost]
public IActionResult Edit(MyModel model) {
if (ModelState.IsValid) {
// Valid
}
else {
// Invalid, display error messages
}
return View(model);
}
通过以上代码,在模型中定义了一个可空的日期属性,并指定了日期的格式。在表单验证中,使用 ModelState.IsValid
进行验证即可。
需要注意的是,在表单模板中,需要使用 html5
输入类型中的 date
或 datetime-local
来让浏览器显示日期选择器。
或者:
这样,在提交表单时,如果用户不输入日期,就会自动将日期设置为 null
,并且也能正确地在日期输入框中显示选择过的日期。