asp.net mvc 模型验证-最舒服的验证方式
2015-05-12 15:27
525 查看
在院子里发现http://www.cnblogs.com/yangecnu/p/3759784.html模型验证方法
1.一般方法繁琐,无数的ifelse,在炎炎夏天,我见过一个验证方法3000行代码的,还要改需求,想必您能了解作为coder当时的心情。
2.使用第三方框架,功能过于繁琐,还得自己学习,没必要
3.CodeContract不熟悉,貌似和第三方不同的是:MS提供的,先得高大上一点而已,本质一样
下面的方法,既简单,维护也很方便。代码涉及点:
1)模型文件代码-添加验证规则,至于你想怎么添加,可以自定义Attribute,或者使用FCL中自带的(本例即是)
2)模型数据操作的Action-在需要验证的Actiond中注入属性或者controller或者全局也行
3)过滤器-添加错误捕捉,处理
维护时,只需要修改各个业务模型中每个字段的验证规则即可
模型建立:
模型数据操作:
1.一般方法繁琐,无数的ifelse,在炎炎夏天,我见过一个验证方法3000行代码的,还要改需求,想必您能了解作为coder当时的心情。
2.使用第三方框架,功能过于繁琐,还得自己学习,没必要
3.CodeContract不熟悉,貌似和第三方不同的是:MS提供的,先得高大上一点而已,本质一样
下面的方法,既简单,维护也很方便。代码涉及点:
1)模型文件代码-添加验证规则,至于你想怎么添加,可以自定义Attribute,或者使用FCL中自带的(本例即是)
2)模型数据操作的Action-在需要验证的Actiond中注入属性或者controller或者全局也行
3)过滤器-添加错误捕捉,处理
维护时,只需要修改各个业务模型中每个字段的验证规则即可
模型建立:
usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Web; usingSystem.ComponentModel.DataAnnotations; namespaceModel_Validation.Models { publicclassUser { [Required(ErrorMessage="用户名不能为空")] publicstringUserName{get;set;} [RegularExpression("[a-z|A-Z|0-9]{6,20}",ErrorMessage="密码位数太短")] publicstringUserPassword{get;set;} [DataType(DataType.EmailAddress,ErrorMessage="邮件格式不正确")] publicstringEmailAddress{get;set;} [RangeAttribute(1,1000,ErrorMessage="评论长度1,1000")] publicstringComments{get;set;} } }
模型数据操作:
[HttpPost,ModelValidationFilterAttribute] publicJsonResultDoLogin(Models.UserUser) { returnJson(newobject(),JsonRequestBehavior.DenyGet); }
ModelValidationFilterAttribute:数据验证的过滤器
publicclassModelValidationFilterAttribute:FilterAttribute,IActionFilter { //Summary: //Calledaftertheactionmethodexecutes. // //Parameters: //filterContext: //Thefiltercontext. publicvoidOnActionExecuted(ActionExecutedContextfilterContext){} // //Summary: //Calledbeforeanactionmethodexecutes. // //Parameters: //filterContext: //Thefiltercontext. publicvoidOnActionExecuting(ActionExecutingContextfilterContext) { var_MS=((Controller)filterContext.Controller).ModelState; if(!_MS.IsValid) { var_FirstErrorField=_MS.FirstOrDefault(); stringstrHtmlId=_FirstErrorField.Key; stringstrErrorMessage=_FirstErrorField.Value.Errors.FirstOrDefault().ErrorMessage;//这个数据你想怎么给JS都行. } } }
相关文章推荐
- ASP.NET MVC 验证方式
- asp.net MVC 添加验证最优方式
- ASP.NET MVC的四种验证编程方式
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
- ASP.NET MVC下的四种验证编程方式
- ASP.NET MVC 2 模型验证
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
- jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)
- Asp.Net MVC 模型验证详解-实现客户端、服务端双重验证
- ASP.NET MVC下的四种验证编程方式
- ASP.NET MVC学习之模型验证详解
- ASP.NET MVC学习之模型验证篇
- ASP.NET MVC的四种验证编程方式
- ASP.NET MVC 4 (十) 模型验证
- ASP.NET MVC下的四种验证编程方式[续篇]
- ASP.NET MVC 4 (十) 模型验证
- 当ASP.NET MVC模型验证遇上CKEditor
- ASP.NET MVC下的四种验证编程方式
- ASP.NET MVC下的四种验证编程方式
- ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证