C#中 自定义验证规则ValidationAttribute的使用

迷恋自留地

进行接口请求的时候难免会对请求字段进行验证,验证对象的所有字段的值是否合乎要求,如进行非空检测,长度检测等等。

Required

用法示例

[Required(ErrorMessage="请填写名称")]

如果属性为null,"",或只包含空白字符,会引发异常(ModelState.IsValid会false)

RegularExpression

用法示例

[RegularExpression(pattern:@"^[1-9]\d*$",ErrorMessage ="请选择部门")]

上面的示例是正整数检测,其他常用正则表达式自行搜索

Compare

用来检测两个字段是否相等

示例

[Compare("NewPassword",ErrorMessage ="确认密码和新密码不一致,请检查")]

MaxLength

示例

[MaxLength(length:11,ErrorMessage ="请填写合法的手机号")]

当然手机号不可能是上面那种检测,这里只是示例

这个注解最常用在字符串上,不过神奇的是也可以用在数组上面,非常有趣

MinLength

和上面MaxLength一样

用来检测数组非空挺好用的,但是注意是无法用到List类型的属性上面的

Range

range除了能用来限定数字的使用范围以外,还可以用来限定其他类型!(当然一般正则表达式可能用的更多)

示例

Range[0,100,ErrorMessage="请输入0到100的数字"]

因为构造函数包含3种

RangeAttribute(int32,int32)

RangeAttribute(double,double)

RangeAttribute(Type,string,string)

StringLength

有了MaxLength和MinLength不知道还要StringLengthAttribute干嘛,请大佬解释

CustomValidation

主要是用来执行自定义的验证

构造方法的参数如下

Type validatorType :自定义验证方法的类

string method:自定义验证的方法名称

这个类让我们自定义格式检验注解变得简单

先定义检测方法

public class TestValidator
{
public static ValidationResult TestAge(int age)
{
if (age > 10 && age < 20)
{
return new ValidationResult("10<age<20,你太年轻了");
}
else
{
return ValidationResult.Success;
}
}
}

然后应用注解

[CustomValidation(typeof(TestValidator),"TestAge")]
public int Age { get; set; }



C#中 自定义验证规则ValidationAttribute的使用的更多相关文章

  1. yii2中自定义验证规则rules

    作者:白狼 出处:www.manks.top/article/yii2_custom_rules 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追 ...

  2. yii2中的rules 自定义验证规则详解

    yii2的一个强大之处之一就是他的Form组件,既方便又安全.有些小伙伴感觉用yii一段时间了,好嘛,除了比tp"难懂"好像啥都没有. 领导安排搞一个注册的功能,这家伙刷刷刷的又是 ...

  3. [Asp.net MVC]Asp.net MVC5系列——在模型中添加验证规则

    目录 概述 在模型中添加验证规则 自定义验证规则 伙伴类的使用 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5 ...

  4. easyui的validatebox重写自定义验证规则的几个实例

    validatebox已经实现的几个规则: 验证规则是根据使用需求和验证类型属性来定义的,这些规则已经实现(easyui API): email:匹配E-Mail的正则表达式规则. url:匹配URL ...

  5. thinkPHP5.0验证器自定义验证规则

    自定义验证规则 protected $rule = [ 'views' => 'require|number|checkviews:0',//checkviews为自定义验证规则,0是传过去的规 ...

  6. validatebox自定义验证规则以及使用

    //===============jsp======state==== //开启验证 <script  type="text/javascript"> ​​​​​​​y ...

  7. Django【第16篇】:Django之Form组件自定义验证规则

    自定义验证规则以及中间件简单介绍 1.python2和python3中的区别 对于python2内置的字符串类型有str和unicode 比如:"abc"是字符串,u"你 ...

  8. Jquery Validate自定义验证规则,一个汉字等于两个字符长度

    使用Jquery validate时写的一些东西,在这里做个笔记 在使用 Jquery validate 的minlength和maxlength进行文本框内容长度验证的时候,对于一个汉字的长度检测结 ...

  9. Jquery Validate 相关参数及常用的自定义验证规则

    一.官网地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 二.默认校验规则 1 2 3 4 5 6 7 8 9 10 1 ...

  10. YII开发技巧分享——模型(models)中rules自定义验证规则

    YII的models中的rules部分是一些表单的验证规则,对于表单验证十分有用,在相应的视图(views)里面添加了表单,在表单被提交之前程序都会自动先来这里面的规则里验证,只有通过对其有效的限制规 ...

随机推荐

  1. 十五,Spring Boot 整合连接数据库(详细配置)

    十五,Spring Boot 整合连接数据库(详细配置) @ 目录 十五,Spring Boot 整合连接数据库(详细配置) 最后: JDBC + HikariDataSource(Spring Bo ...

  2. 三牧校队训练题目 Solution

    前置知识: 搜索 队列 栈 递归 (提高难度)记忆化搜索 T1:P1226 [模板]快速幂 暴力想法:\(a\times a\) 进行 \(b\) 次,每次 \(a\times a\mod p\)​. ...

  3. [TK] HH的项链 离线树状数组解法

    实际上这题很难和树状数组联系起来,我感觉效率也不是很高,感觉不是正解 怎么使用树状数组 这道题我们很容易想到一点:同种物品在一个区间内只能出现一次,先不考虑别的问题,我们想出下面这种使用树状数组的思路 ...

  4. Windows系统环境变量

    添加环境变量: 添加系统变量,机器要重新启动 添加用户变量,机器不用重启: 一般添加环境变量都添加在用户变量中,但只针对这一用户生效 为了使的所有用户都能正常使用软件,通常添加系统变量

  5. HTTP三次握手

    转载:http://blog.163.com/wangzhenbo85@126/blog/static/1013632822013423502833/?suggestedreading&wum ...

  6. Devfreq Bus Dcvs

    一.引言 计算机的世界里,CPU任务分为CPU bound和IO bound.而实际场景下往往是两者混合型任务.针对性能的优化,普遍关注点都在CPU上(不论是CPU的频点和CPU的选核), 往往忽略对 ...

  7. 进程管理中的active_mm是做什么的?

    在Linux内核中,进程管理涉及到许多复杂的数据结构和机制,其中active_mm是与内存管理相关的一个关键概念.理解active_mm需要先了解与之相关的一些基本内核结构和概念. 基本概念 mm_s ...

  8. 谈一谈你对vue指令的理解

    vue指令的本质是给 html 标签新增一些属性 : vue的指令可以分为 3 中类型 : 1. 用于渲染数据的指令,比如 v-for ,v-if ,v-show : 2. 用来交互的指令 ,v-on ...

  9. Tarjan 算法

    远古算法笔记. dfs 生成树 无向图 对于一张连通的无向图,我们可以从任意一点开始 dfs,得到原图的一棵生成树(以开始 dfs 的那个点为根). 这棵生成树上的边称作树边,不在生成树上的边称作非树 ...

  10. KubeSphere 3.3.0 离线安装教程

    作者:老Z,中电信数智科技有限公司山东分公司运维架构师,云原生爱好者,目前专注于云原生运维,云原生领域技术栈涉及Kubernetes.KubeSphere.DevOps.OpenStack.Ansib ...