我想对Age大于或等于18的日期进行自定义验证。
mvc4的任何一个想法都可以使用自定义验证吗?
如果有任何解决方案,请告诉我。
此致
答案 0 :(得分: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.");
}
}