技术开发 频道

ASP.NET MVC实战:实现WF4注册Model验证

  第二步:填写职位和薪水

1
 

  第三步填写:毕业院校和毕业时间

1
 

  第四步填写:邮箱和电话

1
 

  为了实现这样的验证,我们可以将验证的错误信息中移除不在当前步骤填写的字段的错误信息,写一个类InputValidationModelBinder继承DefaultModelBinder并重载OnModelUpdated方法,将不必要的错误信息清除,代码如下:

public class InputValidationModelBinder : DefaultModelBinder  
  {        protected override void OnModelUpdated(ControllerContext controllerContext, ModelBindingContext bindingContext)  
      {            
var modelState
= controllerContext.Controller.ViewData.ModelState;
var valueProvider
= controllerContext.Controller.ValueProvider;
var keysWithNoIncomingValue
= modelState.Keys.Where(x => !
valueProvider.ContainsPrefix(x));
           foreach
(
var key in keysWithNoIncomingValue)                modelState[key].Errors.Clear();
       }
   }

  上面是服务端的代码,对于客户端,我们都知道asp.net MVC客户端验证时通过MicrosoftMvcValidation.js去实现的。

0
相关文章