【发布时间】:2014-03-13 16:46:49
【问题描述】:
对于 MVC 5 是否有任何默认验证,我可以在其中设置日期的最小值和最大值?
在我的模型中我想要日期验证
public class MyClass
{
[Required(ErrorMessage="Start date and time cannot be empty")]
//validate:Must be greater than current date
[DataType(DataType.DateTime)]
public DateTime StartDateTime { get; set; }
[Required(ErrorMessage="End date and time cannot be empty")]
//validate:must be greater than StartDate
[DataType(DataType.DateTime)]
public DateTime EndDateTime { get; set; }
}
Ps:根据这个Asp.Net Website,使用Range验证器对DateTime有问题,不推荐。
注意:jQuery 验证不适用于 Range 属性和 约会时间。例如,以下代码将始终显示 客户端验证错误,即使日期在 指定范围:
[Range(typeof(DateTime), "1/1/1966", "1/1/2020")]您需要禁用 jQuery 日期验证才能将 Range 属性与 DateTime 一起使用。硬编译通常不是一个好习惯 模型中的日期,因此使用 Range 属性和 DateTime 是 气馁。
我也知道有像 Fluent Validation 和 Foolproof 这样的 Nuget 包可以验证和检查一个日期是否大于另一个日期,但我想知道默认情况下是否有一些东西可以检查日期的最小值和最大值。
从我在Whats new in MVC 5.1 中看到的,支持MaxLength 和MinLength 验证。
【问题讨论】:
-
你可以创建一个custom validator
标签: c# asp.net-mvc asp.net-mvc-5 model-validation