2008-09-19 173 views
9

是否有任何简单而智能的方法来保持客户端和服务器端验证规则的同步?ASP.NET:同步客户端和服务器端验证规则

在客户端我们有JavaScript,可能是某种类似jQuery或YUI的框架。

在服务器端我们有ASP.NET WebForms或ASP.NET MVC。

什么是有效的事情,如:

  • 正确的电子邮件的地址
  • 正确的家庭地址和邮编
  • 正确的信用卡号码

等等。

回答

2

< asp:RegularExpressionValidator ... >(和其他asp.net验证器)实现客户端JavaScript和服务器端检查到相同的规则。

+0

它做什么服务器端检查?以及这与ASP.NET MVC如何工作。 – 2008-09-19 14:43:06

+0

ASP.NET中的所有验证器都可以在客户端和服务器端进行工作,因为只有进行客户端验证才是一个巨大的安全漏洞。我还没有尝试在MVC中使用验证器。 – 2008-09-30 16:54:37

1

编写体现验证规则的大量常用测试数据语料库,并根据此常见数据对验证程序进行单元测试。

当您的规则发生变化时,您可以通过更新测试数据并进行测试来反映此情况,直到所有内容再次变为绿色。

1

我一直使用内置的验证器。例如,如果您使用RegularExpressionValidator并提供ValidationExpression,它将在客户端(如果可用)和服务器端使用相同的代码进行验证。

您可以通过派生自BaseValidatior编写自己的自定义验证器。这样做可以让您通过重写EvaluteIsValid来创建服务器Valdiation。如果有必要,您可以稍后添加客户端验证。

1

这不是真实的解决方案,但请查看CodePlex上的Axial project。它是一个将C#转换为JavaScript的项目,并且具有一个控件,可让您使用相同的代码进行服务器端验证和客户端验证。它还没有准备好生产,但我很好奇,看看这是你想要的。

1

xVAL比企业库验证更容易,并且处理客户端和服务器的模型绑定验证。

相关问题