博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义Attribute 服务端校验 客户端校验
阅读量:6934 次
发布时间:2019-06-27

本文共 1511 字,大约阅读时间需要 5 分钟。

<!DOCTYPE html>

MVC 自定义Attribute 服务端校验 客户端校验

自定义AOP标签

vs已经完成部分Attributte 如:Required,表示该值为必须的,[EmailAddress]表面该为邮箱地址 在属性上直接上标签即可验证是否满足该属性 若需要自定义标签则可以自定义类继承自ValidationAttribute,重载IsVaild,在里面写入验证语句即可

如:自定义一个IDNumberAttribute,用于验证是否为合法身份证

public class IDNumberAttribute : ValidationAttribute, IClientValidatable{    public override bool IsValid(object value)    {        string idnumber = value.ToString();        if (string.IsNullOrEmpty(idnumber)) return true;//为空表示不验证,直接返回,属性只有加入Required标签才验证是否为空,这里只验证是否满足格式        if (idnumber.Length != 15 || idnumber.Length != 18)//身份证为15或18位        {            return false;        }        if ((char.ToLower(idnumber[idnumber.Length - 1]) == 'x' &&idnumber.Substring(0,idnumber.Length-1).All(s=>char.IsDigit(s)))            ||idnumber.All(s=>char.IsDigit(s)))        {            return true;        }        return false;    }}

PS:这里只是简单的验证格式 至此这里就定义好了,验证:

[IDNumber] public string IDNumber{get;set;}

若需要加入客户端校验 只需实现IClientValidatable接口,

public IEnumerable
GetClientValidationRules(ModelMetadata metadata, ControllerContext context){ return new List
{ new ModelClientValidationRule{ ValidationType = "IDNumber", ErrorMessage = "请输入正确的身份证号" } }};

同时需要确认开启了客户端校验 ,在web.config 的appsetting节点下加入 <add key="ClientValidationEnabled" value="true">

<add key="UnobtrusiveJavaScriptEnabled" value="true">

在网页写入@Html.ValidationSummary()就能客户端校验了

转载于:https://www.cnblogs.com/Jack-Blog/p/4266518.html

你可能感兴趣的文章
SAP sybase16 安装的一些细节问题
查看>>
linux服务器同步时间
查看>>
Android开发常见问题及解决方法
查看>>
Linux 基础 - 磁盘管理 - 01
查看>>
我的友情链接
查看>>
繁忙的IT基础设施可能导致安全灾难
查看>>
Objective-C之Block
查看>>
iOS 图片加载框架-SDWebImage 解读
查看>>
安景业安京业安敬业anjingye
查看>>
java rest的说明
查看>>
Angular在页面加载很慢的时候,会出现双花括号的问题
查看>>
JS判断客户端是否是iOS或者Android手机移动端
查看>>
我的友情链接
查看>>
清除浏览器自动填充用户名、密码框
查看>>
HTML5 meta viewport参数详解
查看>>
C#中==、Equals、ReferenceEquals的区别是什么
查看>>
linux 服务器I/O读写测试
查看>>
ubuntu下的wireshark编译安装
查看>>
多学一点(一)——在 Linux 下安装 JDK 和 Tomcat
查看>>
如何简洁优雅地实现Kubernetes的服务暴露
查看>>