如何维护服务器端验证和客户端验证

时间:2012-10-19 19:30:07

标签: javascript jquery asp.net ajax validation

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

然而,这很容易变得非常难看。当然,如果您的验证是长度检查或正则表达式,则很容易维护。但是,让我们说你的验证更先进 - 该怎么办?

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

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

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:-1)

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