2011-09-19 264 views
0

我有一个文本框,我做了客户端和服务器端验证的CustomValidation, 我该如何同时激发客户端和服务器端验证?现在服务器端验证仅在客户端验证之后触发。如何同时触发客户端和服务器端验证?

是否有可能?

+1

目的是什么? – NOtherDev

+0

一次显示所有可能的错误。 – Roshe

回答

3

基本上:不,如果您需要,您可以一个接一个地上升,但客户端验证可以避免必须调用服务器才能验证。如果您仍然需要调用服务器,那么您为什么会打扰编写客户端验证脚本?

编辑:

如果你想被贴在表格前的服务器验证发生,我建议你使用Ajax调用您客户端验证脚本中的服务器验证程序。它需要一个小窍门,因为Ajax按定义是异步的,而客户端验证不是。从这里开始:http://www.codeproject.com/KB/ajax/AjaxValidation.aspx

+0

我在客户端进行电子邮件ID格式验证,并对数据库中的电子邮件ID存在进行服务器端验证。 用此实现用户可能首先看到客户端验证错误,然后只有服务器端验证错误。用户声称他们需要立即查看所有可能的错误。我有CustomValidator,它既执行客户端验证,也执行服务器端验证。 – Roshe

1

客户端和服务器端验证可以有不同的目的,并且一个总是假定通过客户端验证保持安全。

默认情况下,一旦客户端事件结束,请求将发送到服务器,这就是页面循环的发生过程。但是,如果您需要直接发送服务器请求,则需要使用AJAX并发送异步请求。

但从逻辑上讲,建议分别处理两个验证,以获得更清洁和更好的方法。

1

我猜你有一些的CustomValidator,只有拥有服务器端执行,这之后您定期校验已运行运行。这样,用户首先会看到来自常规验证器的验证错误,并在修复这些验证错误后,必须通过自定义验证器,这是令人困惑的。 我建议关闭所有客户端验证(将EnableClientValidation设置为false),并仅运行整个服务器端。这样所有的验证器就可以同时运行。

Menno

相关问题