DateTimeのカスタムValidationAttributeを作成しようとしていますか?
しかし、それがヒットしたときIsValid(object value)
、値はすでにですDateTime.Max
私のコードで見ることができるものは何もこの値を設定していませんが、それは私がそれを検証するのに苦労していることを意味します。
私が望むルールは「NullまたはAfterToday」です。つまり、Null値がある場合は問題ありませんが、値がある場合は検証します。
public class AfterTodayAttribute : ValidationAttribute, IClientValidatable
{
public AfterTodayAttribute()
{
}
//Tried this as well...same result
//protected override ValidationResult IsValid(object value, ValidationContext validationContext)
//{
// return base.IsValid(value, validationContext);
//}
public override bool IsValid(object value)
{
//value is already a DateTime and set to DateTime.Max
var valid = false; // for testing only
return valid;
}
}
...
[Display(Description = "Expiry Date")]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[DataType(DataType.Date)]
[AfterToday(false, ErrorMessage = "The Limit Expiry Date must be later than Today")]
public DateTime? NewExpiryDate { get; set; }
...