许多复杂的 ModelError 添加

Many, complex ModelError add

我对 .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
}

有什么方法可以让它更干净或更好吗?

您可以:

  1. 使用validation attributes减少手动验证
  2. 为复杂的字段验证逻辑创建your own validation attribute
  3. 实施 IValidatableObject on your model 并将验证代码移入模型 class