问题描述
.core mvc编程中,我有点新意。
我有很多日期验证。
例如:
private void Validations()
{
if (startDate >= endDate)
{
ModelState.AddModelError("","ErrorMessage");
return;
}
if (startDate < DateTime.Today)
{
ModelState.AddModelError("","ErrorMessage");
return;
}
if (startDate < dateInTheFuture)
{
ModelState.AddModelError("","ErrorMessage");
return;
}
var substracted = startDate.Subtract(endDate);
if (substracted.Days < MinDays)
{
ModelState.AddModelError("","ErrorMessage");
return;
}
// and so on
}
有什么方法可以使它更清洁或更完善?
解决方法
您可以:
- 使用validation attributes可以减少手动验证的次数
- 为复杂的字段验证逻辑创建your own validation attribute
- 实施
IValidatableObject
on your model并将验证代码移入模型类