如何同时触发客户端和服务器端验证?

时间:2011-09-19 10:47:40

标签: c# asp.net

我有一个文本框,我做CustomValidation,它执行客户端和服务器端验证, 如何同时触发客户端和服务器端验证?现在服务器端验证仅在客户端验证后才会触发。

有可能吗?

3 个答案:

答案 0 :(得分:3)

基本上:不,如果需要,你可以一个接一个地上升,但客户端验证是为了避免必须调用服务器才能验证。如果你还需要调用服务器,为什么还要编写客户端验证脚本呢?

编辑

如果您希望在发布表单之前进行服务器验证,我建议您使用Ajax在客户端验证脚本中调用服务器验证例程。它需要一个小技巧,因为Ajax根据定义是异步的,而客户端验证则不是。从这里开始:http://www.codeproject.com/KB/ajax/AjaxValidation.aspx

答案 1 :(得分:1)

客户端和服务器端验证可以有不同的目的,并且总是假设在客户端验证时保持安全。

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

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

答案 2 :(得分:1)

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

门诺