我想将 View 模型上的 DataAnnotation 设置为可通过 web.config 配置的动态值。在下面的示例中,我收到此错误“属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式”。有人知道这是否可能吗?谢谢
[DataType(DataType.Password)]
[RegularExpression(Properties.Settings.Default.PasswordExpression)]
public string Password { get; set; }
最佳答案
属性参数必须是常量,即其值可以在编译时解析的东西。但是您可以编写自己的简单属性类,它采用 appSettings 中项目的名称,获取基础值,并将其传递给正常的 RegularExpression 处理。那么您的属性将如下所示:
[ConfigedRegularExpression("PasswordExpression")]
其中 PasswordExpression 是包含实际正则表达式字符串的应用设置的名称。
并且,在写完这篇文章并进行搜索后(我应该先这样做),我看到有人在这里为您解决了这个问题:
How to write custom RegularExpressionValidator which takes the values from the config file?
关于c# - 具有可配置值的 DataAnnotation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7438563/