[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 次  |  
        
|   最近记录:  |