问题
I have to use a Regular expression validator for username property in my model. I am getting this regular expression from the config file.
[RegularExpression(UsernameValidationExpression)] //UsernameValidationExpression = value from the config file
public string UserName { get; set; }
Here i am getting an error "An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type"
How can i solve this??
回答1:
public class ConfigRegularExpressionAttribute : RegularExpressionAttribute
{
public ConfigRegularExpressionAttribute(string patternConfigKey)
: base(ConfigurationManager.AppSettings[patternConfigKey])
{ }
}
and then:
[ConfigRegularExpression("UsernameValidationExpression")]
public string UserName { get; set; }
and in web.config:
<appSettings>
<add key="UsernameValidationExpression" value="foo bar" />
</appSettings>
来源:https://stackoverflow.com/questions/6649362/how-to-write-custom-regularexpressionvalidator-which-takes-the-values-from-the-c