是否有任何简单、智能的方法可以使您的客户端和服务器端验证规则保持同步?
在客户端,我们有 JavaScript,可能是 jQuery 或 YUI 之类的框架。
在服务器端,我们有 ASP.NET WebForms 或 ASP.NET MVC。
验证的内容如下:
- 正确的电子邮件地址
- 正确的家庭地址和邮政编码
- 正确的信用卡号码
等等。
是否有任何简单、智能的方法可以使您的客户端和服务器端验证规则保持同步?
在客户端,我们有 JavaScript,可能是 jQuery 或 YUI 之类的框架。
在服务器端,我们有 ASP.NET WebForms 或 ASP.NET MVC。
验证的内容如下:
等等。
<asp:RegularExpressionValidator ...> (and the other asp.net validators) implement client side javascript and server side checking to the same rules.
我一直使用内置的验证器。例如,如果您使用 RegularExpressionValidator 并提供 ValidationExpression,它将使用相同的代码在客户端(如果可用)和服务器端进行验证。
您可以通过从 BaseValidatior 派生来编写自己的自定义验证器。这样做允许您通过覆盖 EvaluteIsValid 来创建服务器验证。如果有必要,您可以稍后添加客户端验证。
这不是一个真实的解决方案,但请查看 CodePlex 上的Axial 项目。这是一个将 C# 转换为 Web 的 Javascript 的项目,并具有一个控件,可让您使用相同的代码进行服务器端验证和客户端验证。它还没有准备好投入生产,但我很想知道这是否是你想要的。
xVAL比 Enterprise Library Validation 容易得多,并且可以处理客户端和服务器的模型绑定验证。
编写一个包含验证规则的大型通用测试数据语料库,并针对这些通用数据对验证器进行单元测试。
当您的规则发生变化时,您可以通过更新测试数据和测试来反映这一点,直到一切再次变绿。