自定义验证程序:使用重载方法时不调用IsValid

时间:2011-03-08 16:12:57

标签: c# asp.net-mvc-2 validation

如果我执行以下操作:

public class CustomRangeAttribute : RangeAttribute
{
    public override bool IsValid(object value)
    {
        return base.IsValid(value);
    }
}

该方法按预期执行。 如果我这样做:

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
   return base.IsValid(value, validationContext);
}

不调用该方法。为什么? sl3dg3

1 个答案:

答案 0 :(得分:2)

如果您使用的是ASP.NET MVC 3.0 ,这完全符合您的预期。我自己尝试使用你的例子,它工作得很好 - 我得到一个非null的ValidationContext,它确实被调用。有关详细信息,请参阅here。所以这表明另一个原因(超出了令人敬畏的Razor引擎)升级到v.3.0。