我必须在模型中对用户名属性使用正则表达式验证器。
我从配置文件中获取此正则表达式。
[RegularExpression(UsernameValidationExpression)] //UsernameValidationExpression = value from the config file
public string UserName { get; set; }
在这里我得到一个错误
“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”
我该如何解决呢?
最佳答案
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>
关于asp.net-mvc - 如何编写自定义的RegularExpressionValidator,它从配置文件中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6649362/