asp.net-mvc - 如何编写自定义的RegularExpressionValidator,它从配置文件中获取值?

标签 asp.net-mvc data-annotations

我必须在模型中对用户名属性使用正则表达式验证器。
我从配置文件中获取此正则表达式。

[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/

相关文章:

asp.net-mvc - 将 OutputCache 应用于存储库模型类是一种不好的做法吗

c# - 为什么 ASP.Net MVC 范围属性采用类型?

validation - 自定义模型绑定(bind)器中的 DataAnnotations 验证

c# - 将数据注释与 Resources.Messages C# 结合使用

c# - ASP.NET MVC ActionFilter 不会阻止其他过滤器运行

asp.net - ASP.NET MVC 如何连接到 ASP.NET?

c# - 在 ASP.NET MVC 中为多语言结构创建表单时需要帮助

jquery - jquery中如何将JSON字符串添加到数组中

asp.net-mvc - 使用 DataAnnotations 和 ASP.Net MVC 的多个 MetadataType 验证规则集

c# - c# 中接受下划线和空格的字母数字字符串的正则表达式