How to specify date format for model binding?

与世无争的帅哥 提交于 2019-12-30 05:53:07

问题


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


回答1:


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);
}



回答2:


You might find the answer to your question here

Custom DateTime model binder in Asp.net MVC

Also Scott Hanselman has talked about a DateTime custom model binder here

http://www.hanselman.com/blog/SplittingDateTimeUnitTestingASPNETMVCCustomModelBinders.aspx

Although he's using the binder to split the date & time you might his post useful when creating your custom model binder.



来源:https://stackoverflow.com/questions/3725919/how-to-specify-date-format-for-model-binding

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