如何创建覆盖RegularExpressionAttribute的自定义验证器的The Gu provides an example

这样做的好处是您不必create a custom Model Validator,但我无法使其正常工作。

给出以下代码:

public class NameAttribute : RegularExpressionAttribute {
    public NameAttribute()
        : base(@"^[\w\s\-\']+$") {
    }
}

这有效:
[RegularExpression(@"^[\w\s\-\']+$")]

但这不是:
[Name]

我是否误解了斯科特示例的一个方面,或者该示例存在缺陷,因为MVC不支持开箱即用的派生类型,因此实际上我将不得不创建一个对应的ModelValidator?

最佳答案

破解了!将以下内容添加到Global.asax.cs Application_Start()

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(NameAttribute), typeof(RegularExpressionAttributeAdapter));

09-07 17:43