1.Создайте класс и извлеките его из класса ValidationAttribute
и переопределите в нем метод IsValid
, а затем реализуйте логику проверки внутри метода:
public class AgeMajorityValidator : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
DateTime dateOfBirth;
if (!DateTime.TryParse(value.ToString(), out dateOfBirth))
return new ValidationResult("" + validationContext.DisplayName + " is not valid date format");
int age = new DateTime(DateTime.Now.Subtract(dateOfBirth).Ticks).Year - 1;
if (age > 18)
return ValidationResult.Success;
else
return new ValidationResult("Please Enter a Valid Age.");
}
return new ValidationResult("" + validationContext.DisplayName + " is required");
}
2.Используйте AgeMajorityValidator
какатрибут в вашей модели, как показано ниже:
[Display(Name = "Date Of Birth")]
[DataType(DataType.Date)]
[AgeMajorityValidator]
public DateTime DateOfBirth { get; set; }