本文介绍了定制验证:使用重载的方法时,IsValid的不叫的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我做到以下几点:

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

按预期执行的方法。
如果我做的:

The method is executed as expected.If I do:

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

的方法,不被调用。为什么?
sl3dg3

The method is not called. Why?sl3dg3

推荐答案

这个工程完全按照你所期望的,如果你正在使用ASP.NET MVC的 3.0 。我试了一下自己使用的例子,它的伟大工程 - 我得到一个非空ValidationContext和它被调用。请参见这个完整的阐述。因此,这表明另一个原因(超出真棒剃刀引擎)升级到V.3.0。

This works exactly as you'd expect if you are using ASP.NET MVC 3.0. I tried it myself using your example and it works great -- I get a non-null ValidationContext and it does get invoked. See here for a full elaboration on this. So this suggests yet another reason (beyond the awesome Razor engine) to upgrade to v.3.0.

这篇关于定制验证:使用重载的方法时,IsValid的不叫的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 04:05