Asp.net MVC设置验证日期格式在Chrome上失败

Mar*_*als 7 asp.net-mvc

我在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)