验证日期格式不起作用

时间:2014-02-04 21:04:52

标签: asp.net-mvc asp.net-mvc-5 globalization

我遇到日期验证问题。在我的视图中,我有一个jQuery datepicker - 我将格式从yy/mm/dd更改为mm/dd/yy,现在我得到了客户端验证错误。例如,

    The value '02/25/2014' is not valid for Date of Birth.

Javascript:

$('#DateOfBirth').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "mm/dd/yy",
    yearRange: "-90:-5"
});

视图模型:

    [Required]
    [Display(Name = "Date of Birth")]
    public DateTime? DateOfBirth { get; set; }

观点:

@Html.TextBoxFor(m=> m.DateOfBirth, "{0:MM/dd/yyyy}", new { @class = "datepicker" })

有关于此的任何想法吗?

感谢。

更新

我忽略了一些事情。验证实际上在服务器端失败。所以这与jQuery无关。对我而言ModelState.IsValid == false

1 个答案:

答案 0 :(得分:1)

我在这里找到了解决方案:ASP.NET MVC3 - DateTime format 它与全球化有关。

我的区域设置为en-CA

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern

给出"dd/MM/yyyy"

所以在我Web.config <system.web>下的<globalization uiCulture="en-US" culture="en-US"/>

yyyy-MM-dd

所以DateTime格式现在适用于我。

<强> P.S。

在不担心特定文化的情况下传递日期的安全方法是使用ISO 8601格式 - yyyy/MM/dd(或{{1}}也适用)。