我对 Asp.net MVC4 中的日期验证有疑问。我正在使用数据注释进行日期验证,如下所示
[DataType(DataType.Date)]
[AllowHtml]
[DisplayFormat(HtmlEncode = false, ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
[Display(Name = "Date Of Birth")]
public Nullable<System.DateTime> DateOfBirth { get; set; }
接下来,在 Html 页面中,我在 MVC Html 表单中使用以下内容
@Html.TextBoxFor(model => model.UserSettings.DateOfBirth,
String.Format("{0:dd/MM/yyyy}",
model.UserSettings.DateOfBirth),
new { id = "DoB", @class = "brth-ipt" })
最后,我正在使用 Jquery 日期选择器,如下所示
$(function () {
$("#DoB").datepicker("destroy");
$("#DoB").datepicker({
showOn: "both",
beforeShow: customRange,
dateFormat: "dd/mm/yy", //"mm-dd-yy",
firstDay: 1,
changeFirstDay: false,
changeMonth: true,
changeYear: true,
yearRange: "-150:+0"
});
});
我的问题是,当我从 datepicker 中选择一个日期时,它显示为 mm/dd/yyyy 格式并且工作正常。
但是当我再次加载页面以编辑表单时,它以 mm-dd-yyyy 格式显示。现在,当我保存表单而不更改前一个日期(mm-dd-yyyy 格式)时,我无法保存表单,因为数据注释验证给我一个错误。“日期格式无效”。
我无法解决这个问题。