Вопрос здесь похож, но у меня нет наследования каких-либо доменных объектов. Мои поля и теги проверки имеют следующий порядок, но печатаются только ошибки MustBe18 и «Обязательные». У меня есть несколько других полей в этой модели с гораздо большей проверкой, но порядок ValidationAttribute в коде, похоже, не имеет значения. Кажется, ответ jfar в связанном посте говорит о том, что можно создать помощника, но как? Как можно контролировать заказ?
[Required(ErrorMessage = "This field is required")]
[DisplayName("Date of Birth")]
[MustBeValidDate(ErrorMessage = "Must be a valid date")]
[MustBe18(ErrorMessage = "You must be 18 years old")]
[MustNotBeOver100(ErrorMessage = "This caller is too old")]
public string dob { get; set; }
MustBe18: Атрибут Validation (перегруженный метод IsValid)
try
{
DateTime dob = new DateTime(DateTime.Now.AddYears(-18).Year, DateTime.Now.Month, DateTime.Now.Day);
return DateTime.Compare(DateTime.Parse(value.ToString()), dob) <= 0;
}
catch
{
return false;
}