c# - 具有可配置值的 DataAnnotation?

标签 c# asp.net-mvc

我想将 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/

相关文章:

c# - 在 ASP.NET MVC 项目中使用 WebControl

从 asp.net mvc ajax 调用 wcf

c# - 共享程序集中属性的 TypeLoadException

c# - WPF 触控应用程序(部分)在 .NET Framework 4.7 上卡住

c# - 检查 excel 行中的名称是否与表列名称相同

c# - Unity 3D 在 GetButtonDown 上的特定时间移动对象

javascript - 如何将参数数组传递到 Kendo 网格数据源?

c# - 无法弄清楚这个 jQuery 代码是如何工作的

c# - 如何使用 Send Grid mvc azure 通过 List<string>() 发送电子邮件

asp.net-mvc - 将长度从 2 更改为 5 时,在 URL 中显示 Unique SEO 代码两次