У меня возникли некоторые проблемы с пониманием логики проверки опережать DataAnnotation проверки:ASP.NET MVC: 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;
}
}
Сообщение об ошибке AlwaysInvalidAttribute получает отображается, только если Обязательный атрибут действителен: я не могу получить оба сообщения одновременно. Кто-нибудь понял, почему? Я думаю, что это проблема с DefaultModelBinder, но до сих пор не нашли, где и почему.