我在asp.net mvc中设置验证日期格式Chrome时遇到问题,对于IE等其他浏览器,Firefox工作正常.
我在我的模型中定义了日期,如下一个代码:
[Required]
[Display(Name = "Data fi publicació")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
public DateTime PublishingEndDate { get; set; }
Run Code Online (Sandbox Code Playgroud)
在我看来:
@Html.TextBoxFor(model => model.PublishingEndDate)
@Html.ValidationMessageFor(model => model.PublishingEndDate)
Run Code Online (Sandbox Code Playgroud)
问题看来,@Html.ValidationMessageFor用格式验证日期MM/dd/yyyy,但我想要的是用欧洲格式验证dd/MM/yyyy.如何将默认文化验证格式日期更改为dd/MM/yyyy?
谢谢你的帮助
Mar*_*als 22
最后我发现这个问题只影响Chrome,IE浏览器,Firexfox运行完美,看起来是一个chrome bug,我在http://forums.asp.net/t/1729179.aspx/1找到了解决方案
必须使用以下代码覆盖jquery的验证器方法:
$(document).ready(function () {
$('.calendarPicker').datepicker({ dateFormat: "dd/mm/yy" });
$.validator.addMethod('date',
function (value, element, params) {
if (this.optional(element)) {
return true;
}
var ok = true;
try {
$.datepicker.parseDate('dd/mm/yy', value);
}
catch (err) {
ok = false;
}
return ok;
});
});
Run Code Online (Sandbox Code Playgroud)