В моей модели кажется, что 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" });
}
}
Когда пользователь вводит одну строку текста в текстовую область Псевдонимы
, но оставляет текстовое поле Имя
пустым, только сообщение об ошибке Требуется
для Имя
свойство отображается. Сообщение об ошибке, которое должно отображаться при использовании функции Validate ()
, никогда не появляется.
Только после ввода имени в текстовое поле Имя
и некоторого текста в Текст Псевдонимов
- это вызванная функция Validate ()
.
Так оно и должно работать? Кажется странным, что пользователю отображается сообщение об ошибке на следующей странице, когда ошибка возникает на текущей странице.