如何编写自定义的RegularExpressionValidator,它从配置文件中获取值?

时间:2011-07-11 11:23:57

标签: asp.net-mvc data-annotations

我必须在我的模型中为username属性使用Regular expression validator。 我从配置文件中获取这个正则表达式。

[RegularExpression(UsernameValidationExpression)] //UsernameValidationExpression = value from the config file
public string UserName { get; set; }

我在这里得到一个错误 “属性参数必须是属性参数类型”

的常量表达式,typeof表达式或数组创建表达式

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:13)

public class ConfigRegularExpressionAttribute : RegularExpressionAttribute
{
    public ConfigRegularExpressionAttribute(string patternConfigKey)
        : base(ConfigurationManager.AppSettings[patternConfigKey])
    { }
}

然后:

[ConfigRegularExpression("UsernameValidationExpression")]
public string UserName { get; set; }

并在web.config中:

<appSettings>
    <add key="UsernameValidationExpression" value="foo bar" />
</appSettings>