我有一个日期时间输入字段,我想确保用户输入的日期至少晚于 Datetime.Now 24 小时。我试过这个:
[Range(typeof(DateTime), DateTime.Now.ToString(), DateTime.Now.AddDays(1).ToString())]
public DateTime EndDate { get; set; }
但是我收到编译器错误,因为值必须是常量。那我该怎么办?
最佳答案
您需要的是自定义验证属性,以便您可以进行比较:
[CustomValidation(typeof (Validator), "ValidateEndTimeRange")]
public DateTime EndDate { get; set; }
然后是你的实际验证器:
namespace MyMVCApp
{
public class Validator
{
public static ValidationResult ValidateEndTimeRange(DateTime endTime)
{
if(endTime.EndDate < DateTime.Now || endTime.EndDate > DateTime.Now.AddDays(1)){
return new ValidationResult("Your end date is outside of the acceptable range.");
}
return ValidationResult.Success;
}
}
}
关于c# - ASP.NET MVC 日期时间范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22286560/