我在日期验证方面遇到问题。在我的 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/