Я пытаюсь создать собственный атрибут проверки, чтобы применить его. Я использовал учебник: http://ezzylearning.com/tutorial/creating-custom-validation-attribute-in-asp-net-mvc (не реализовывал проверку на стороне клиента. Все до раздела на стороне клиента). И метод IsValid никогда не вызывается. Все основные атрибуты [Обязательные] работают правильно, но пользовательский инициализируется только и игнорируется.
[AttributeUsage(AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public sealed class RequiredIfNotAttribute : ValidationAttribute
{
private String PropertyName { get; set; }
private Object InvalidValue { get; set; }
static RequiredIfNotAttribute()
{
DataAnnotationsModelValidatorProvider.RegisterAdapter(typeof(RequiredIfNotAttribute), typeof(RequiredAttributeAdapter));
}
public RequiredIfNotAttribute(String propertyName, Object invalidValue)
{
PropertyName = propertyName;
InvalidValue = invalidValue;
}
protected override ValidationResult IsValid(object value, ValidationContext context)
{
ValidationResult result1 = IsValid(value, context);
result1.ErrorMessage = "TEST";
return result1;
}
public override bool IsValid(object value)
{
return false;
}
}
Модель использует атрибут.
[Display(Name = "Xxxxx")]
[RequiredIfNot("B", "")]
public string A { get; set; }
И пользовательский интерфейс выглядит как пример
<div>
@Html.LabelFor(Model => Model.A)<br />
@Html.EditorFor(Model => Model.A)<br />
@Html.ValidationMessageFor(Model => Model.A)
</div>
Буду признателен за любую помощь.