【发布时间】:2016-06-23 17:21:30
【问题描述】:
我有一个自定义验证属性,当我通过 POST 向服务器发出请求时,会触发该属性的 IsValid 方法两次。
它导致返回的错误消息被重复。
我已经使用 Fiddler 检查了该请求只被触发过一次,所以情况是 1 个请求与模型绑定触发了两次。
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = true)]
public class MinimumAgeAttribute : ValidationAttribute
{
private readonly int _minimumAge;
public MinimumAgeAttribute(int minimumAge)
{
_minimumAge = minimumAge;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
DateTime date;
if (DateTime.TryParse(value.ToString(), out date))
{
if (date.AddYears(_minimumAge) < DateTime.Now)
{
return ValidationResult.Success;
}
}
return new ValidationResult("Invalid Age, Clients must be 18 years or over");
}
}
【问题讨论】:
标签: c# asp.net asp.net-web-api2 model-validation validationattribute