【问题标题】:How to maintain serverside validation and clientside validation如何维护服务器端验证和客户端验证
【发布时间】:2012-10-19 19:30:07
【问题描述】:

当我们在 ASP.NET 中有一些控件时,当然最好同时使用客户端和服务器端验证。客户端用于可用性目的,服务器端用于安全目的。

但是,这很容易变得很丑陋。当然,如果您的验证是长度检查或正则表达式,则很容易维护。但是,假设您的验证更高级 - 该怎么办?

一种方法是在服务器代码和 Javascript 中实现完全相同的功能。另一种方法是两者都调用具有相同逻辑的 Web 服务,但是您的 AJAX 调用必须是同步的,这通常是不好的做法。

那么,我的问题是,执行服务器端和客户端验证的最佳方式是什么?

【问题讨论】:

  • 我觉得这个问题没有简单的答案。当您尝试同时执行这两种操作时,它会变得混乱。

标签: javascript jquery asp.net ajax validation


【解决方案1】:

您的 ajax 调用不必同步验证;它只需要快:

  • 当用户关闭某个字段时,例如,对服务进行了 ajax 调用,并且该字段旁边会显示一个微调器,表明服务器正在验证数据。
  • 如果服务返回成功,则微调器将替换为绿色复选标记。
  • 如果服务返回失败,一个红色 X,可能带有解释性文字。
  • 当用户最终单击提交时,服务器上会进行相同的验证(同步或不同步)。

另一个选择(除了@user133811 使用 JS 的两个地方)是找到一个交叉编译器,它将您选择的语言编译成 JavaScript。但是,这些可能可用也可能不可用。

我通常发现在客户端上进行复杂的验证是不必要且不可取的。是的,让我知道一个字段是必需的,或者如果存在用户名(通过 ajax),或者简单的事情,但如果这是一个复杂的抵押申请或其他东西,我希望我必须在发现我需要包括之前提交如果我宣布我的宠物金鱼为共同签署人(或其他什么,你明白了),我的 W2。

【讨论】:

    【解决方案2】:

    服务器和客户端的代码相同意味着你的服务器需要使用 JS。 Node 可能是您可能使用的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 2013-10-11
      • 2020-09-08
      • 1970-01-01
      • 2017-05-03
      相关资源
      最近更新 更多