我目前正在使用MVC 1.0和.NET 3.5。我正在使用DataAnnotations来验证我的模型。我正在尝试添加使用RegularExpression来验证邮政编码。当我尝试以下操作时,我已将我的Regex存储在资源文件中,因为许多模型都会使用它:
[RegularExpression(Resources.RegexPostcode, ErrorMessage="Postcode format invalid")]
public string Postcode { get; set; }
构建时出现以下错误:
属性参数必须是a 常量表达式,表达式 或者数组创建表达式 属性参数类型。
有没有办法将资源文件中的值用作正则表达式,还是需要在每个具有邮政编码的模型中输入实际的正则表达式字符串?
由于
答案 0 :(得分:5)
我建议你自己制作ValidationAttribute。这将使正则表达式保持在一个位置以及错误消息。
class PostcodeAttribute : RegularExpressionAttribute
{
public PostcodeAttribute() : base("your regex")
{
this.ErrorMessage = "Postcode format invalid";
}
}
答案 1 :(得分:0)
由于我没有足够的代表,因此无法对接受的答案发表评论。
这个接受的答案对我有用,但需要调整才能使用不引人注目的javascript验证。需要此答案的IClientValidatable
位:https://stackoverflow.com/a/18041534/1714585