gpt4 book ai didi

c# - DateTime 的 MVC3 ValidationAttribute?在 IsValid(...) 中返回 DateTime.Max

转载 作者:行者123 更新时间:2023-11-30 17:56:50 25 4
gpt4 key购买 nike

我正在尝试为 DateTime 编写自定义 ValidationAttribute?

但是,当它命中 IsValid(object value) 时,该值已经是 DateTime.Max

我在我的代码中看不到任何东西都设置了这个值,但这意味着我正在努力验证它。

我想要的规则是“Null or After Today”——这意味着如果有一个 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; }
...

最佳答案

这应该可以解决问题:

public override bool IsValid(object value)
{
var dt = value as DateTime?;

return dt == null || dt.Value.Date > DateTime.Today.AddDays(1).AddSeconds(-1);
}

关于c# - DateTime 的 MVC3 ValidationAttribute?在 IsValid(...) 中返回 DateTime.Max,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13785892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com