CompareAttribute的自定义DataAnnotationsModelValidator不起作用

时间:2017-09-28 07:24:00

标签: c# asp.net-mvc validation

在我的ASP.NET项目中,我为CompareAttribute创建了一个自定义DataAnnotationsModelValidator。 (System.ComponentModel.DataAnnotations命名空间中的那个,而不是过时的。)

原因是我想添加一些自定义逻辑来替换错误消息,但实际上甚至在我添加此自定义逻辑之前就会出现问题。

public class LocalizableCompareAnnotationsAdapter : DataAnnotationsModelValidator<CompareAttribute>
{
    public LocalizableCompareAnnotationsAdapter(ModelMetadata metadata, ControllerContext context, CompareAttribute attribute)
        : base(metadata, context, attribute)
    {
    }
}

DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(CompareAttribute), typeof(LocalizableCompareAnnotationsAdapter));

正如您所看到的,我没有做任何特别的事情......只需创建这个自定义适配器。问题是这似乎打破了我的验证,所以无论我在哪里使用CompareAttribute,它都会停止工作(至少在客户端)。

有谁知道为什么这会破坏验证?该项目包含用于其他验证属性的类似自定义适配器,例如RequiredAttribute和RegularExpressionAttribute。这些工作没有问题。

0 个答案:

没有答案