【问题标题】:How to validate date properly in mvc 3?如何在 mvc 3 中正确验证日期?
【发布时间】:2013-09-05 10:35:39
【问题描述】:

我想正确验证日期。如果我输入日期为 21-2-198 而不是 21-2-1988 .日期在 Mvc3 中没有正确验证。我为此使用了正则表达式,但没有用。还有其他方法可以验证日期,包括 MVC 模型中的年份。以下是我在模型中编写的代码

[Required(ErrorMessage = "Activation date is required")]
        [Display(Name = "Activation date")]
        [RegularExpression(@"/^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d+$/", ErrorMessage = "Enter proper date")]
        public DateTime? ActivationDate { get; set; }

【问题讨论】:

  • 我相信您的要求可以通过为 DateTime 创建新的验证属性来实现,如下面的 SO 链接中指定的那样。 Date Validation

标签: asp.net-mvc-3 asp.net-mvc-4


【解决方案1】:

您应该能够通过使用[DataType(DataType.Date)] 属性而不是您的正则表达式来获得验证。请注意,此注释与语言环境无关...即21-2-19882-21-1998 都将验证。

【讨论】:

  • 我的意思是它没有验证年份。
【解决方案2】:

我将日期输入为 21-2-198 而不是 21-2-1988 。日期在 Mvc3 中没有正确验证。

在我看来,您需要一个 CustomValidator 来防止用户输入超出特定范围的日期。

ASP.NET MVC 3 Custom Validation using Data Annotations 为此目的提供了一个验证器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多