MVC中日期时间和日期字段的范围限制

本文关键字:日期 范围 时间 MVC 字段 | 更新日期: 2023-09-27 18:17:20

我使用System.Data.SqlTypes.SqlDateTime.MinValueSystem.Data.SqlTypes.SqlDateTime.MaxValue使用以下代码行来定义日期时间和日期字段的范围。

[Range(typeof(DateTime), "1/1/1753 12:00:00 AM", "12/31/9999 11:59:59 PM", ErrorMessage="''D2'' must be within 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.")]
public System.Nullable<System.DateTime> D2{get;set;}//;

但是当我在文本框中输入日期11/08/2016 12:00 am时,它会抛出错误消息

'D2'必须在1/1/1753 12:00 AM和12/31/9999 11:59 PM之间。

所以请让我知道上面的代码有什么问题。

MVC中日期时间和日期字段的范围限制

您可以为您的类使用IValidatableObject接口并检查日期验证,如下所示

public class Sample : IValidatableObject
{
    public DateTime Date { set; get; }
    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {
        if (Date > new DateTime(2012, 12, 12))
        {
            yield return new ValidationResult("you cant enter it");
        }
    }
}