В моей модели кажется, что Validate()
вызывается только ПОСЛЕ того, как оба свойства проходят проверку.
public class MyModel : IValidatableObject
{
[Required]
public string Name { get; set;}
[Required]
public string Nicknames {get; set;}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if(Nicknames != null && Nicknames.Split(Environment.NewLine.ToCharArray()).Count() < 2)
return yield result new ValidationResult("Enter at least two nicknames, new [] { "Nicknames" });
}
}
Когда пользователь вводит одну строку текста в текстовую область Nicknames
, но оставляет текстовое поле Name
пустым, отображается только сообщение об ошибке Required
для свойства Name
. Сообщение об ошибке, которое должно отображаться с помощью функции Validate()
, никогда не появляется.
Только после ввода имени в текстовом поле Name
и некоторого текста в тексте Nicknames
вызывается функция Validate()
.
Это как это должно работать? Кажется странным, что пользователю показывают сообщение об ошибке на следующей странице, когда ошибка вызывается на текущей странице.