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