Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to specify date format for model binding?

I hope the question is easy, but I am searching around for more than an hour and I just do not find the answer. So I have a asp.net mvc 2 application and one of the forms contains a date textbox with a jquery datepicker. I have set in the datepicker the date format to be dd.mm.yyyy. My problem is that on the model binding this date is interpreted as mm.dd.yyyy, so by the time the model reaches my action method the DateTime attribute of the model is not correct (day and month is reversed, if it is not possible to reverse it client side validation does not let me save the item). I do not want to change culture, but I would like to specify somehow to the model binder how to interpret the date. Is it possible somehow?

Thanks a lot

like image 553
apolka Avatar asked Sep 16 '10 10:09

apolka


1 Answers

This blog post explains how you can specify a particular date format to be used by the MVC model binder.

You will need to create a custom model binder implementation that is aware of the date format, then associate that with the DateTime type in your Global.asax.cs:

protected void Application_Start()
{
    //...
    var binder = new DateTimeModelBinder(GetCustomDateFormat());
    ModelBinders.Binders.Add(typeof(DateTime), binder);
}
like image 171
Steve Greatrex Avatar answered Nov 09 '22 03:11

Steve Greatrex