mvc中自定义验证逻辑
2016-04-21 17:56
429 查看
上一篇中讲解了mvc中的远程验证,也就是ajax验证,本章继续介绍mvc中的自定义特性验证方式
asp.net mvc自定义验证逻辑分为两种方式:客户端验证与服务端验证
相应的涉及到两个接口ValidationAttribute,IClientValidatable
ValidationAttibute服务端验证,IClientValidatable客户端验证
本章重点,ValidationAttribute服务器端验证。自定义特性验证必须要实现ValidationAttribute中的IsValid至少一个重载方法
代码上面大家通过注释都能够了解,调用方式和asp.net mvc内置的验证方式一样,如下
[Required]
[MaxWords(2,ErrorMessage = "很多单词了 {0}")]
public string Name { get; set; }
好,看下运行的结果
看到我们自定义的特性效果出来了,有成就感吧,但是细心的程序猿朋友应该注意到,自定义特性的ErrorMessage消息没有显示出来,因为代码中我们写死了,如何通过参数将ErrorMessage传进去呢,
运行代码后的效果为:
参考资料:ASP.NET MVC系列一:(6)自定义验证逻辑
asp.net mvc自定义验证逻辑分为两种方式:客户端验证与服务端验证
相应的涉及到两个接口ValidationAttribute,IClientValidatable
ValidationAttibute服务端验证,IClientValidatable客户端验证
本章重点,ValidationAttribute服务器端验证。自定义特性验证必须要实现ValidationAttribute中的IsValid至少一个重载方法
public class MaxWordsAttribute : ValidationAttribute { private readonly int _maxWords; //构造器 public MaxWordsAttribute(int maxWords) { _maxWords = maxWords; } //验证方法 protected override ValidationResult IsValid(object value, ValidationContext validationContext) { if (value != null) { var valueAsString = value.ToString(); if (valueAsString.Split(' ').Length > _maxWords) { return new ValidationResult("Too many words"); } } return ValidationResult.Success; } }
代码上面大家通过注释都能够了解,调用方式和asp.net mvc内置的验证方式一样,如下
[Required]
[MaxWords(2,ErrorMessage = "很多单词了 {0}")]
public string Name { get; set; }
好,看下运行的结果
看到我们自定义的特性效果出来了,有成就感吧,但是细心的程序猿朋友应该注意到,自定义特性的ErrorMessage消息没有显示出来,因为代码中我们写死了,如何通过参数将ErrorMessage传进去呢,
运行代码后的效果为:
参考资料:ASP.NET MVC系列一:(6)自定义验证逻辑
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET Mvc开发之查询数据
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC中图表控件的使用方法
- 剖析ASP.NET MVC的DependencyResolver组件
- ASP.NET MVC的四种验证编程方式
- ASP.NET MVC @Helper辅助方法和@functons自定义函数的使用方法
- 仅30行代码实现Javascript中的MVC
- asp.net MVC利用ActionFilterAttribute过滤关键字的方法
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- ASP.NET MVC 3仿Server.Transfer效果的实现方法
- 如何在MVC应用程序中使用Jquery
- 利用ASP.NET MVC+EasyUI+SqlServer搭建企业开发框架
- ASP.NET MVC小结之基础篇(二)
- ASP.NET小结之MVC, MVP, MVVM比较以及区别(一)