Validation ASP.NET MVC:DataAnnotation验证执行顺序

Validation ASP.NET MVC:DataAnnotation验证执行顺序,validation,asp.net-mvc-2,Validation,Asp.net Mvc 2,我在理解DataAnnotation验证后的验证逻辑时遇到一些问题: 使用以下型号: [AlwaysInvalid] public class TestModel { [Required] public string Test { get; set; } } [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)] public class AlwaysInvalidAttr

我在理解DataAnnotation验证后的验证逻辑时遇到一些问题:

使用以下型号:

[AlwaysInvalid]
public class TestModel
{
    [Required]
    public string Test { get; set; }
}

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public class AlwaysInvalidAttribute : ValidationAttribute
{
    private readonly object typeId = new object();

    public AlwaysInvalidAttribute() : base("Fail !") {}

    public override object TypeId { get { return this.typeId; } }

    public override bool IsValid(object value)
    {
        return false;
    }
}

仅当所需属性有效时,才会显示AlwaysInValidateAttribute错误消息:我无法同时获取两条消息。有人知道为什么吗?我认为这是DefaultModelBinder的一个问题,但仍然没有找到位置或原因。

类级验证程序只有在所有属性级验证程序都成功的情况下才会运行。此行为在
modelvalidater
类中进行编码