[HttpPost]
public ActionResult Create(ALLOCATION_M allocationM)
{
try
{
if (ModelState.IsValid)
{
allocationM.ALLO_ID = GetId();
_unitOfWork.AllocationMRepository.Insert(allocationM);
_unitOfWork.Save();
return RedirectToAction("Index");
}
}
catch (DataException)
{
ModelState.AddModelError("", EditorLocalization.AllocationMasterController_Create_Unable_to_save_changes__Try_again__and_if_the_problem_persists__see_your_system_administrator_);
}
return View(allocationM);
}
Run Code Online (Sandbox Code Playgroud)
内部C#运行时检查ModelState.IsValid如何?我的意思是当从视图调用post方法时,它如何检查我的模型状态是有效还是无效.
当默认模型绑定器尝试实例化作为参数传递给控制器操作的模型(在执行此操作之前),如果存在某些验证错误,则会将它们添加到ModelState中.因此,一旦执行流程进入您的控制器操作,就会出现添加验证错误.IsValid属性只检查Errors集合中是否有元素.
例如,假设您ALLOCATION_M有一个用属性修饰的[Required]属性:
[Required]
public string SomeProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
如果SomeProperty在请求中没有调用参数或者它是空的,则提交表单以调用此控制器操作时,默认模型绑定器将添加与此属性关联的验证错误.
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |