我想将视图模型上的DataAnnotation设置为可通过web.config配置的动态值。在下面的示例中,我得到此错误“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”。任何人都知道这是否可行?感谢
[DataType(DataType.Password)]
[RegularExpression(Properties.Settings.Default.PasswordExpression)]
public string Password { get; set; }
答案 0 :(得分:6)
属性参数必须是常量,即可以在编译时解析其值的东西。但是您可以编写自己的简单Attribute类,该类使用appSettings中项目的名称,获取基础值,并将其传递给正常的RegularExpression处理。然后您的属性将如下所示:
[ConfigedRegularExpression("PasswordExpression")]
其中PasswordExpression是包含实际正则表达式字符串的应用程序设置的名称。
并且,在写完这篇文章并进行搜索之后(我本应该先做),我看到有人在这里为你解决了这个问题:
How to write custom RegularExpressionValidator which takes the values from the config file?