【问题标题】:how to fire both client side and server side validations at once?如何同时触发客户端和服务器端验证?
【发布时间】:2011-09-19 10:47:40
【问题描述】:

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

有可能吗?

【问题讨论】:

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

标签: c# asp.net


【解决方案1】:

基本上:不,如果需要,您可以一个接一个地上升,但客户端验证是存在的,以避免为了验证而调用服务器。如果你仍然需要调用服务器,你为什么还要编写客户端验证脚本?

编辑:

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

【讨论】:

  • 我在客户端进行电子邮件 ID 格式验证,并对数据库中电子邮件 ID 的存在进行服务器端验证。通过这个实现,用户可以首先看到客户端验证错误,然后只看到服务器端验证错误。用户声称他们需要立即查看所有可能的错误。我有 CustomValidator,它同时进行客户端和服务器端验证。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    门诺

    【讨论】:

      猜你喜欢
      • 2012-01-23
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      相关资源
      最近更新 更多