Как указать формат даты для привязки к модели?

Надеюсь, этот вопрос будет легким, но я ищу более часа, и я просто не нахожу ответа. Поэтому у меня есть приложение asp.net mvc 2, и одна из форм содержит текстовое поле даты с jquery datepicker. Я установил в datepicker формат даты dd.mm.yyyy. Моя проблема заключается в том, что при привязке модели эта дата интерпретируется как mm.dd.yyyy, поэтому к моменту, когда модель достигает моего действия, атрибут DateTime модели неверен (день и месяц отменены, если невозможно отменить это проверка на стороне клиента не позволяет мне сохранить элемент). Я не хочу менять культуру, но я хотел бы как-то указать на модельное связующее, как интерпретировать дату. Возможно ли это как-то?

Спасибо большое

Ответы

Ответ 1

В этом сообщении в блоге объясняется, как вы можете указать конкретный формат даты, который будет использоваться связующим веществом модели MVC.

Вам нужно будет создать пользовательскую реализацию связующего объекта, которая будет знать формат даты, а затем сопоставить это с типом DateTime в файле Global.asax.cs:

protected void Application_Start()
{
    //...
    var binder = new DateTimeModelBinder(GetCustomDateFormat());
    ModelBinders.Binders.Add(typeof(DateTime), binder);
}

Ответ 2

Вы можете найти ответ на свой вопрос здесь

Пользовательское связующее устройство DateTime в Asp.net MVC

Также Scott Hanselman рассказал о привязке к пользовательской модели DateTime здесь

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

Хотя он использует связующее, чтобы разделить дату и время, вы можете использовать его сообщение при создании своего настраиваемого связующего объекта.