Asp.net mvc 为出生日期创建自定义验证器,以检查用户是否处于成年年龄

Asp.net mvc 为出生日期创建自定义验证器,以检查用户是否处于成年年龄,asp.net-mvc,Asp.net Mvc,我的模型中有以下代码段,我想为其添加一个自定义验证器: [Required] [Display(Name = "Date Of Birth")] [DataType(DataType.Date)] public DateTime DateOfBirth { get; set; } 我试着研究,但没有具体的答案。我想知道为日期创建自定义验证器的正确语法。创建一个类并从ValidationAttribute类派生它,覆盖其中的IsValid方法,然后在该方法内实现验证逻辑: public clas

我的模型中有以下代码段,我想为其添加一个自定义验证器:

[Required]
[Display(Name = "Date Of Birth")]
[DataType(DataType.Date)]
public DateTime DateOfBirth { get; set; }

我试着研究,但没有具体的答案。我想知道为日期创建自定义验证器的正确语法。创建一个类并从
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; }

嗨,你试过用谷歌搜索什么?当你点击创建这篇文章时,按钮上写着“提问”。但“我想要”或“我需要”不是问题,也不是问题陈述。“如何”有点太模糊了。我们将帮助您修复bug或回答有关代码的特定问题,而不仅仅是完全为您完成工作。你做了什么研究?你试过什么代码?你面临什么问题?请阅读更多关于如何提出有用问题的指导。谢谢