ASP.NET:同步客户端和服务器端验证规则

8
有没有简单、智能的方法来保持客户端和服务器端的验证规则同步呢?
在客户端,我们有JavaScript,可能还有一些框架,如jQuery或YUI。
在服务器端,我们有ASP.NET WebForms或ASP.NET MVC。
需要验证的内容包括:
- 正确的电子邮件地址 - 正确的家庭地址和邮政编码 - 正确的信用卡号码
等等。
因此。
5个回答

2
(以及其他的asp.net验证器)实现了客户端JavaScript和服务器端检查相同的规则。


它执行什么服务器端检查?它如何与ASP.NET MVC一起工作? - Seb Nilsson
ASP.NET中的所有验证器都可以在客户端和服务器端上工作,因为仅进行客户端验证将是一个巨大的安全漏洞。我还没有尝试在MVC中使用验证器。 - Brad Wilson

1
编写一个大的、常见的测试数据集,体现验证规则,然后针对这些公共数据单元测试您的验证器。
当您的规则发生变化时,通过更新测试数据并测试直到一切再次正常来反映这种变化。

1

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

您可以通过从BaseValidatior派生来编写自己的自定义验证器。这样做允许您通过覆盖EvaluteIsValid创建服务器验证。如果需要,您随后可以添加客户端验证。


1

这不是一个真实世界的解决方案,但你可以在 CodePlex 上查看 Axial 项目。它是一个将 C# 转换为 Javascript 的项目,具有控件,让你可以使用相同的代码进行服务器端验证和客户端验证。它还没有准备好用于生产环境,但我很想知道这是否符合你的需求。


1

xVAL比Enterprise Library Validation要容易得多,可以处理客户端和服务器的模型绑定验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接