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

我必须在我的模型中为username属性使用Regular表达式验证器.
我从配置文件中获取此正则表达式.
[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>

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...