日期使用ASP.NET MVC 3数据注释失败客户端和服务器端验证

时间:2012-07-05 11:39:35

标签: asp.net-mvc-3 data-annotations unobtrusive-validation

在我的所有项目中,我有jQuery日期选择器格式化日期dd-MMM-yyyy ,全球用户和DateTime.parse方法都完全理解 - 遗憾的是,这似乎不是数据注释验证的情况!我的数据注释如下:

    [Display(Name = "Date of Birth")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:d-MMM-yyyy}", ApplyFormatInEditMode = true)]
    [Required(ErrorMessage = "You must enter a date of birth.")]
    public DateTime dob { get; set; }

我的表单拒绝提交错误,如下所示:

Date field

是否有人知道如何以此格式验证,接受和模型化日期值?

1 个答案:

答案 0 :(得分:0)

您可以为DateTime类型编写自定义模型绑定器,因为我shown here在从请求中解析DateTime字段时将使用[DisplayFormat]属性中定义的格式。默认情况下,模型绑定器使用当前线程的CultureInfo设置或您在web.config的<globalization>元素中配置的值。如果将其设置为auto,则ASP.NET将使用客户端Accept-Language请求标头来调整文化信息。