我遇到日期验证问题。在我的视图中,我有一个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
。
答案 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}}也适用)。