-1

我想对年龄大于或等于 18 的日期进行自定义验证。

任何一个想法都可以使用 mvc4 进行自定义验证吗?

请让我知道是否有任何解决方案..

问候

4

1 回答 1

1

只需使用Range验证器:

[Range(18, int.MaxValue)]
public int Age { get; set; }

它在System.ComponentModel.DataAnnotations命名空间中可用。

更新

要验证至少 18 年前的日期,您可以使用如下自定义验证属性:

public class Over18Attribute : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        string message = String.Format("The {0} field is invalid.", validationContext.DisplayName ?? validationContext.MemberName);

        if (value == null)
            return new ValidationResult(message);

        DateTime date;
        try { date = Convert.ToDateTime(value); }
        catch (InvalidCastException e) { return new ValidationResult(message); }

        if (DateTime.Today.AddYears(-18) >= date)
            return ValidationResult.Success;
        else
            return new ValidationResult("You must be 18 years or older.");
    }
}
于 2013-09-25T20:55:43.790 回答