当我们在 ASP.NET 中有一些控件时,当然最好同时使用客户端和服务器端验证。客户端用于可用性目的,服务器端用于安全目的。
但是,这很容易变得非常难看。当然,如果您的验证是长度检查或正则表达式,则很容易维护。但是,假设您的验证更高级 - 该怎么办?
一种方法是在服务器代码和 Javascript 中实现完全相同的功能。另一种方法是两者都调用具有相同逻辑的 web 服务,但是您的 AJAX 调用必须是同步的,这通常是不好的做法。
所以,我的问题是,执行服务器端和客户端验证的最佳方式是什么?
当我们在 ASP.NET 中有一些控件时,当然最好同时使用客户端和服务器端验证。客户端用于可用性目的,服务器端用于安全目的。
但是,这很容易变得非常难看。当然,如果您的验证是长度检查或正则表达式,则很容易维护。但是,假设您的验证更高级 - 该怎么办?
一种方法是在服务器代码和 Javascript 中实现完全相同的功能。另一种方法是两者都调用具有相同逻辑的 web 服务,但是您的 AJAX 调用必须是同步的,这通常是不好的做法。
所以,我的问题是,执行服务器端和客户端验证的最佳方式是什么?
您的 ajax 调用不必同步进行验证;它只需要快速:
另一种选择(除了@user133811 使用 JS 的两个地方)是找到一个交叉编译器,它将您选择的语言编译成 JavaScript。但是,这些可能可用也可能不可用。
我通常发现在客户端上进行复杂的验证是不必要且不可取的。是的,让我知道一个字段是必需的,或者是否存在用户名(通过 ajax),或者简单的东西,但如果这是一个复杂的抵押申请或其他东西,我希望我必须在发现我需要包括之前提交如果我宣布我的宠物金鱼为共同签署人(或其他什么,你明白了),我的 W2。
服务器和客户端的相同代码意味着您的服务器需要使用 JS。节点可能是您可能使用的东西。