Обновление ModelState
Привет, У меня вопрос о ModelState в ASP.NET MVC-контроллере.
Когда пользователь выбирает определенную опцию из представления, дата начала и дата окончания "сертификации" будут установлены на основе других введенных дат.
Проблема с этим - это даты сертификации, возвращаемые как null, и наш класс CertificationMetaData указывает поля как [Обязательно], поэтому ModelState недействителен, как только действие загружается.
Удаление ошибок ModelSate вручную позволяет это работать, но мне было интересно, есть ли лучший способ сделать это? Есть ли способ обновить ModelState? Должен ли я сделать поля не требуемыми? Или я должен добавить значение даты из представления с помощью javascript?
public ActionResult Create(FormCollection fc, Certification certification, Absence absence)
{
if (certification.CertificationTypeID == 1)
{
certification.CertificationStartDate = absence.StartDate;
certification.CertificationEndDate = absence.StartDate.AddDays(7);
this.ModelState.Remove("CertificationStartDate");
this.ModelState.Remove("CertificationEndDate");
}
if (this.ModelState.IsValid)
{
// save
return RedirectToAction("Index");
}
return View();
}
Также, как вы можете видеть, я жестко запрограммировал значение ID для типа сертификации. Каков наилучший способ сравнить значения со значениями таблицы поиска? Является ли перечисление лучшим способом?
Спасибо