Много, сложная ошибка модели добавить

#c# #validation #.net-core #modelstate

#c# #проверка #.net-ядро #modelstate

Вопрос:

Я немного новичок в программировании .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:

Вы можете:

  1. Используйте атрибуты проверки для написания ручных проверок меньше
  2. Создайте свой собственный атрибут проверки для сложной логики проверки полей
  3. Реализуйте IValidatableObject свою модель и переместите код проверки внутри класса модели