カスタム検証属性があります。POST 経由でサーバーにリクエストを送信すると、属性に対して IsValid メソッドが 2 回起動されます。
その結果、エラーメッセージが重複して返されました。
Fiddler を使用して、リクエストが 1 回だけ発生することを確認したので、モデル バインディングが 2 回発生する 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");
}
}