validating date format not working

☆樱花仙子☆ 提交于 2020-01-13 11:26:26

问题


I'm having problem with date validation. In my View, I have a jQuery datepicker - I changed the format from yy/mm/dd to mm/dd/yy and now I get client-side validation errors. For example,

    The value '02/25/2014' is not valid for Date of Birth.

The Javascript:

$('#DateOfBirth').datepicker({
    changeMonth: true,
    changeYear: true,
    dateFormat: "mm/dd/yy",
    yearRange: "-90:-5"
});

The View Model:

    [Required]
    [Display(Name = "Date of Birth")]
    public DateTime? DateOfBirth { get; set; }

The View:

@Html.TextBoxFor(m=> m.DateOfBirth, "{0:MM/dd/yyyy}", new { @class = "datepicker" })

Any ideas on this?

Thanks.

UPDATE

I overlooked something. The validation actually fails on the server side. So this has nothing to do with jQuery. The ModelState.IsValid == false for me.


回答1:


I found the solution here: ASP.NET MVC3 - DateTime format and it had to do with globalization.

My locale is en-CA and

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern

gives "dd/MM/yyyy".

So in Web.config under <system.web> I included

<globalization uiCulture="en-US" culture="en-US"/>

So the DateTime format is working for me now.

P.S.

A safe way to pass dates without worrying about specific culture is to use ISO 8601 format - yyyy-MM-dd (or yyyy/MM/dd which also works).



来源:https://stackoverflow.com/questions/21563388/validating-date-format-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!