刷新模型状态
嗨,我有一个关于 ASP.NET MVC 控制器中的 ModelState 的问题。
当用户从视图中选择某个选项时,“认证”的开始日期和结束日期将基于输入的其他日期来设置。
问题是认证日期返回为空,并且我们的 CertificationMetaData 类将字段指定为 [Required],因此一旦加载操作,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 值。将值与查找表值进行比较的最佳方法是什么?枚举是最好的方法吗?
谢谢