服务端数据校验及客户端js脚本验证集成处理初探
以直接调用,如果直接调用,在这 里它的验证结果将不能被vc容监控到!
所以要特别注意。
这小段代码是为MyRequest.GetInt(“monthTextBox",0)这个整数做一个校验,这个地方这个方法是另 一个组件里的,大家应该看得明白,用 来获取客户端的一个提交值的,如果不为整数的话,默认为0,这个地方有点多余,因为验证器里本来 就有一个针对整数的验证了,这个我们就先不 管它了,反正我这个组件的思路是不相干的! 后面调用的Integer、Range 等方法就不多做解释了,它们只是一个验证方法而已,关键 RegClientValidator方法,这个方法有三个重载版本。 RegClientValidator(string elementName);这个表示为html页面中id或是name为elementName的 html控件添加js验证的脚本代码,(注:这一步其实只做了一个脚本代码的生成,并没有输出。) RegClientValidator(string elementName,string tipString);这个重载表示,为页面控件添加验证 ,并在输入时添加提示信息,提示信息的位置现在是 默认的,在控件的上方(具体效果如图,我会在以后的代码更新中会加入一个可以自定义显示的位置 ,给用灵活的配置或是使用如图的默认) 如果不使用这个重载,自然没有这个提示信息了! 然后讲第三个重载:RegClientValidator(string elementName,string tipString,string errspanName) 这个重载前两上参数都讲过了,第三个参数其实是控制是否在自定义的html元素里面显示错误提示信 息 我代码中"monthErrorSpan"其实就是图上红色的那块区域的html元素的id,这样如果验证不通过,信息 将在红色区域中显示,如果没有使用这个重载, 我们会自动生成一个div来显示,效果如下图: 注:这个错误提示的内容就是在cs文件里面写的那些字符串,在哪一下的验证中不通过,就会显示相 应的错误提示! 接下来看:Retrurn(T tValue); 这个方法其实就是用来返回值的,意思就是如果验证通过返回用户提交的数据给接收变量,如果不通 过将Retrun(T tValue)中定义的值赋给接收变量,这个应该比较好理解,如果你没有定义接收变量,这个 方法也可以省略~ 然后再看这两个方法
上面那个SetGroupName("A")表示把该验证添加到A组中,其实这个地方我要声明的是,一般90%甚至更 多的页面的验证是不需要分组的,当然这个也用不着,我在这个地方只是为以演示这个分组功能才加上去 的,分组验证的情况,有用过的朋友,估计会明白,我这个地方就不多说了,不需要分组的就不用调用这 个方法咯! 下面这个IsRequired(false)这个字面上应该也很好理解,就是设置成非必填项,当然如果用户输入了 的话,还是会有验证的! 好了,上面对该解释的都解释了,现在看最后的几代码:
vc.RenderClientValidator();这个方法做的工作是客户端验证生成的最后一步,它负责把容器里所有 的客户端验证代码生成后写入到html代码中~! 有多关键,不用我说了吧! 下面vc.IsAllPass这个也不用说了,就是容器里的验证是否都通过了! 差不多了,剩下的代码就是前端的调用,这个地方有些不合理,我估计在下一个更新中会处理掉!
客户端的代码生成后,在什么 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |