#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:
Вы можете:
- Используйте атрибуты проверки для написания ручных проверок меньше
- Создайте свой собственный атрибут проверки для сложной логики проверки полей
- Реализуйте
IValidatableObject
свою модель и переместите код проверки внутри класса модели