客户端验证:只允许日历中的旧日期

本文关键字:日历 日期 验证 许日历 客户端 | 更新日期: 2023-09-27 18:12:59

如果我在模型中有此代码,在BirthDate属性之前,我如何允许用户仅输入旧日期?

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public System.DateTime BirthDate { get; set; }

这可以不使用JavaScript实现吗?如果是,怎么做?

客户端验证:只允许日历中的旧日期

您应该扩展RangeAttribute来装饰DateTime模型字段。

例如,您可以创建一个新的验证属性:BirthDateAttribute
public class BirthDateAttribute : RangeAttribute {
   public BirthDateAttribute() 
                   : base(
                           typeof(DateTime), 
                           DateTime.Now.AddYears(-120).ToShortDateString(), 
                           DateTime.Now.AddDays(-1)ToShortDateString()
                     ) { } 
}
然后,你可以应用它来装饰你的DateTime属性:
[BirthDateAttribute]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public System.DateTime BirthDate { get; set; }