【问题标题】:ASP.NET: Syncing client and server-side validation rules [closed]ASP.NET:同步客户端和服务器端验证规则 [关闭]
【发布时间】:2010-09-11 04:24:55
【问题描述】:

是否有任何简单、智能的方法可以使您的客户端和服务器端验证规则保持同步?

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

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

经过验证的内容如下:

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

等等。

【问题讨论】:

    标签: c# asp.net .net validation


    【解决方案1】:

    (和其他 asp.net 验证器)根据相同的规则实现客户端 javascript 和服务器端检查。

    【讨论】:

    • 它做了什么服务器端检查?以及这如何与 ASP.NET MVC 一起使用。
    • ASP.NET 中的所有验证器都在客户端和服务器端工作,因为只进行客户端验证将是一个巨大的安全漏洞。我没有尝试在 MVC 中使用验证器。
    【解决方案2】:

    编写一个包含验证规则的大型通用测试数据语料库,并针对这些通用数据对您的验证器进行单元测试。

    当您的规则发生变化时,您会通过更新测试数据和测试来反映这一点,直到一切再次变绿。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        这不是一个真实的解决方案,但请查看 CodePlex 上的 Axial project。这是一个将 C# 转换为 Web Javascript 的项目,并且有一个控件可以让您使用相同的代码进行服务器端验证和客户端验证。它尚未准备好投入生产,但我很想知道这是否是您正在寻找的东西。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-01-23
            • 2023-04-08
            • 2011-02-06
            • 2017-01-26
            • 1970-01-01
            • 2017-05-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多