DataAnnotation具有可配置的值?

时间:2011-09-15 23:20:31

标签: c# asp.net-mvc

我想将视图模型上的DataAnnotation设置为可通过web.config配置的动态值。在下面的示例中,我得到此错误“属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式”。任何人都知道这是否可行?感谢

[DataType(DataType.Password)]
[RegularExpression(Properties.Settings.Default.PasswordExpression)]
public string Password { get; set; }

1 个答案:

答案 0 :(得分:6)

属性参数必须是常量,即可以在编译时解析其值的东西。但是您可以编写自己的简单Attribute类,该类使用appSettings中项目的名称,获取基础值,并将其传递给正常的RegularExpression处理。然后您的属性将如下所示:

[ConfigedRegularExpression("PasswordExpression")]

其中PasswordExpression是包含实际正则表达式字符串的应用程序设置的名称。

并且,在写完这篇文章并进行搜索之后(我本应该先做),我看到有人在这里为你解决了这个问题:

How to write custom RegularExpressionValidator which takes the values from the config file?