快速业务通道

服务端数据校验及客户端js脚本验证集成处理初探

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

一、起源

在项目开发中数据有效性验证肯定是必须的,那么在哪里验证呢!?怎么去验证呢?

针对web项目而言,客户端验证+服务端的验证缺一不可,客户端的脚本验证用于提高用户体验!

服务端的验证主要是为了数据的安全性、合法性的验证!

但是我们在实施这两种验证的时候会发现有以下几个可能出现的问题:

1.客户端代码验证写起来相对比较烦琐,而且易出错!(主要是拼写错误,例如js方法名拼写错误)

2. 服务端的验证和客户端验证要保持一致性一样很烦琐。(客户验证输入不能超过10个字符,那后服 务器端也要相应的控制在10个字符,而且修改时,需要将客户端和服务端同步修改,提示信息,前后端都 要再输入一次!一个字“烦”),总觉得时间不应该花在这个上面!

3.验证与赋值;一般情况下客户端提交的数据,我们验证通过后,把变量的值赋给实体或是相关的变 量,如果不通过有些时候我们有时候还会需要给变量或实体属性值加上一个默认值,这个时候我们写的代 码可能不避免的出现一些if的判断语句,让代码显得不够简洁。

其它的细节问题,这里就不一一列举了,我针对上面的问题,自己做了一个下面的小组件!

二、 思路说明:

为了解决第一个问题和第二个问题,我决定客户端的验证代码由服务端的验证代码直接生成页面中, 这样可以避免客户端的代码在编写上的错误!而服务端的程序代码每次被访问时,通过验证状态开关来开 启验证,用户可以根据自己的业务逻辑来开启验证,我先定义了一个验证容器ValidatorContainer和一个 验证器Validator两个概念,验证容器是指包括了一个或多个验证器对象的容器类,验证器是针对每一条 数据项所添加的验证信息类!

三、调用说明:

可能这一部分的内容可以让你更直观的了解这个验证组件的一些原理和信息:

第一步:先添加引用,这个不用多说,Validator.dll引用进去(最下面附有项目的源码)。

第二步:代码都在下面了,不用再说了

cs页面的代码:

using Validator;
using My.Framework.Utility;
public partial class _Default : System.Web.UI.Page
{
    protected ValidatorContainer vc;
    protected void Page_Load(object sender, EventArgs e)
    {
        //是否开启服务端验证
        bool isStartCheck = false;
        if (Request["command"] == "postBack")
        {
            /*---------------------------------------------------------------- ---------------------
             * 此处的bool值主要控制验证容器处在何种状态
             * 状态false:只注册客户端代码不实施服务端的验证
             * 状态true:验证客户端的数据并生成客户端代码字符串
             * -------------------------------------------------------------- -----------------*/
            isStartCheck = true;
        }

        //初始化验证容器的集合,并传入isStartCheck来控制验证的开启
        vc = new ValidatorContainer(isStartCheck);

        //设置当前的验证组(些处可以根据你自己的页面逻辑来选择验证,不设置为验证所 有)
        vc.GroupName = "A";

        //获取并验证客户端的数据
        int month = vc.Add(Validator<int>.Init(MyRequest.GetInt ("monthTextBox",0)))//注意这一行,我们需要把验证器放置到对应的容器中再进行验证
            .Integer("月份必须为1到12的整数")
      

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号