一、起源
在项目开发中数据有效性验证肯定是必须的,那么在哪里验证呢!?怎么去验证呢?
针对web项目而言,客户端验证+服务端的验证缺一不可,客户端的脚本验证用于提高用户体验!
服务端的验证主要是为了数据的安全性、合法性的验证!
但是我们在实施这两种验证的时候会发现有以下几个可能出现的问题:
1.客户端代码验证写起来相对比较烦琐,而且易出错!(主要是拼写错误,例如js方法名拼写错误)
2. 服务端的验证和客户端验证要保持一致性一样很烦琐。(客户验证输入不能超过10个字符,那后服 务器端也要相应的控制在10个字符,而且修改时,需要将客户端和服务端同步修改,提示信息,前后端都 要再输入一次!一个字“烦”),总觉得时间不应该花在这个上面!
3.验证与赋值;一般情况下客户端提交的数据,我们验证通过后,把变量的值赋给实体或是相关的变 量,如果不通过有些时候我们有时候还会需要给变量或实体属性值加上一个默认值,这个时候我们写的代 码可能不避免的出现一些if的判断语句,让代码显得不够简洁。
其它的细节问题,这里就不一一列举了,我针对上面的问题,自己做了一个下面的小组件!
二、 思路说明:
为了解决第一个问题和第二个问题,我决定客户端的验证代码由服务端的验证代码直接生成页面中, 这样可以避免客户端的代码在编写上的错误!而服务端的程序代码每次被访问时,通过验证状态开关来开 启验证,用户可以根据自己的业务逻辑来开启验证,我先定义了一个验证容器ValidatorContainer和一个 验证器Validator两个概念,验证容器是指包括了一个或多个验证器对象的容器类,验证器是针对每一条 数据项所添加的验证信息类!
三、调用说明:
可能这一部分的内容可以让你更直观的了解这个验证组件的一些原理和信息:
第一步:先添加引用,这个不用多说,Validator.dll引用进去(最下面附有项目的源码)。
第二步:代码都在下面了,不用再说了