我们知道,在整个 asp+ 开发过程中,了解验证非常重要。看看如今的大多数商业 web 站点,您会发现,这些站点中有许多表单,这些表单明显是通过执行大量手写的代码来执行验证。编写验证代码并不是一件有趣的工作。如果要通过编写代码来显示数据表或动态生成图表,可能会很吸引人,但是没有人可以向他的同事证实这种很“酷”的方法能够禁止在姓名字段中输入空值。
尽管 jscript 语言的标准化做得很好,但是用于与浏览器中的 html 文档交互的文档对象模型 (document object model, dom) 没有广泛采用的标准。因此,客户端的验证只在 internet explorer 4.0 和更高版本中进行,因为该验证的对象是 internet explorer dom。
从服务器的角度来说,客户端的验证只意味着验证控件将不同的内容发送到 html 中。除此之外,其事件序列完全相同。服务器端的检查仍然执行。尽管看起来似乎多余,但是却十分重要,因为:
默认情况下,脚本文件将安装在 "_aspx" 目录中默认的根目录下,并使用相对于根的脚本 include 指令调用,该指令以正斜线开头。该引用表明每个单独的对象不必包含脚本库,同一台计算机上的所有页面可以引用同一个文件。您会注意到,该路径中还有一个公用的语言运行时版本号,以便不同的运行时版本可以在同一台计算机上运行。
如果查看一下您默认的虚拟根目录,您会找到该文件并查看其中的内容。这些文件的位置在 config.web 文件中指定。config.web 文件是一个用于大多数 asp+ 设置的 xml 文件。以下是该文件中位置的定义:
要使验证可以在客户端正常进行,该属性必须与客户端显示的 html 元素的 value 特性对应。许多复杂的控件(例如 datagrid 和 calendar)在客户端没有值,只能在服务器上进行验证。因此,只有最接近 html 元素的控件才可以参与验证。此外,控件必须在客户端具有单个逻辑值。因此,radiobuttonlist 可以被验证,但是 checkboxlist 不可以。