【问题标题】:How to use RegularExpression DataAnnotation with Resource file如何将正则表达式数据注释与资源文件一起使用
【发布时间】:2010-03-26 13:33:15
【问题描述】:

我目前正在使用 MVC 1.0 和 .NET 3.5。我正在使用 DataAnnotations 来验证我的模型。我正在尝试添加使用正则表达式来验证邮政编码。当我尝试以下操作时,我已将我的正则表达式存储在资源文件中,因为许多模型都会使用它:

[RegularExpression(Resources.RegexPostcode, ErrorMessage="Postcode format invalid")]
public string Postcode { get; set; }

我在构建时收到以下错误:

属性参数必须是 常量表达式,typeof 表达式 或数组创建表达式 属性参数类型。

有没有办法将资源文件中的值用作正则表达式,或者我是否需要将实际的正则表达式字符串输入到每个具有邮政编码的模型中?

谢谢

【问题讨论】:

    标签: asp.net-mvc resources data-annotations


    【解决方案1】:

    我建议您制作自己的 ValidationAttribute。这会将正则表达式和错误消息保存在一个位置。

    class PostcodeAttribute : RegularExpressionAttribute
    {
        public PostcodeAttribute() : base("your regex")
        {
            this.ErrorMessage = "Postcode format invalid";
        }
    }
    

    【讨论】:

      【解决方案2】:

      由于我没有足够的代表,无法对已接受的答案发表评论。

      这个接受的答案对我有用,但需要进行调整才能使用不显眼的 javascript 验证。需要来自此答案的IClientValidatable 位:https://stackoverflow.com/a/18041534/1714585

      【讨论】:

        猜你喜欢
        • 2014-03-11
        • 2011-01-20
        • 1970-01-01
        • 2013-07-30
        • 1970-01-01
        • 2020-07-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多