ASP.NET - ASP.NET 服务器控件的客户端验证

      如果用户使用的浏览器支持动态 HTML (DHTML),则 ASP.NET 验证控件可以使用客户端脚本来执行验证。因为这种控件可以提供及时反馈(无需到服务器的往返过程),所以用户会感觉到页的性能有所改善。

在大多数情况下,无需对页或验证控件作出任何更改便可使用客户端验证。控件将自动检测浏览器是否支持 DHTML 并执行相应的检查。客户端验证使用的错误显示机制和服务器端验证相同。

 

一、客户端验证的差异

如果是在客户端上执行验证,则验证控件可以包括某些附加功能:

·如果打算生成验证错误信息摘要,您可以在消息框中显示这些信息,该框在用户提交页时出现。

·验证控件的对象模型在客户端略有不同。

 

客户端验证具有以下几个细微不同之处:

·如果启用客户端验证,则页将包含对执行客户端验证所用的脚本库的引用。

·使用 RegularExpressionValidator 控件时,如果可以使用兼容 ECMAScript 的语言(例如 Microsoft JScript),则可以在客户端检查表达式。客户端正则表达式检查与在服务器上使用 Regex 类进行的正则表达式检查相比,两者的差异非常小。

·页中包含客户端方法,以便在页提交前截获并处理 Click 事件。

 

二、客户端验证对象模型

验证控件在客户端上呈现的对象模型与在服务器上呈现的对象模型几乎完全相同。例如,无论在客户端上还是在服务器上,您都可以通过相同的方式读取验证控件的 IsValid 属性以测试验证。

但是,在页级别上公开的验证信息有所不同。在服务器上,页支持属性;在客户端,它包含全局变量。下表比较了在页上公开的信息。

客户端页变量

服务器页属性

Page_IsValid

IsValid

Page_Validators(数组)   包含对页上所有验证控件的引用。

Validators(集合)   包含对所有验证控件的引用。

Page_ValidationActive   表示是否应进行验证的布尔值。通过编程方式将此变量设置为 false 以关闭客户端验证。

(无等效项)

      说明: 所有与页相关的验证信息都应被视为只读信息。

 

三、发送具有客户端验证错误的页

在某些情况下,您可能不愿意使用客户端验证而愿意仅使用服务器端验证,即使是可以使用客户端验证亦如此。例如,如果验证需要使用只有服务器才有的信息或资源(例如访问数据库),则客户端验证不可行。

默认情况下,在执行客户端验证时,如果页上出错,则用户无法将页发送到服务器。但您可能发现有必要允许用户即使在出错时也可以发送。例如,页上可能有一个取消按钮或一个导航按钮,您需要该按钮即使在部分控件未通过验证的情况下也提交页。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值