asp.net-mvc - 验证日期格式不起作用

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

我在日期验证方面遇到问题。在我的 View 中,我有一个 jQuery 日期选择器 - 我将格式从 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"
});

View 模型:
    [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为了我。

最佳答案

我在这里找到了解决方案: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"/>

所以 DateTime 格式现在对我有用。

附言

传递日期而不用担心特定文化的一种安全方法是使用 ISO 8601 格式 - yyyy-MM-dd (或 yyyy/MM/dd 也有效)。

关于asp.net-mvc - 验证日期格式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21563388/

相关文章:

database - 在数据库中存储国际地址的 "best"方式是什么?

globalization - 使用特定格式在 Handsontable 中显示数字

c# - 将语言缩写转换为全名,例如en 到英语?

c# - RedirectToAction 生成错误的 url(查询字符串参数而不是路由数据参数)

javascript - 调用操作方法,关闭对话框并刷新父级

c# - 找不到方法 : '!!0[] System.Array.Empty()'

c# - MVC : POST controller method get empty Dictionary

ajax - ASP.NET MVC 5 错误

javascript - 拼写错误或缺少模块?

asp.net - 为 Web UI 实现有限状态机