Как указать формат даты для привязки модели? - PullRequest
17 голосов
/ 16 сентября 2010

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

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

Ответы [ 2 ]

9 голосов
/ 13 января 2013

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

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

protected void Application_Start()
{
    //...
    var binder = new DateTimeModelBinder(GetCustomDateFormat());
    ModelBinders.Binders.Add(typeof(DateTime), binder);
}
2 голосов
/ 16 сентября 2010

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

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

Также Скотт Хансельман говорил здесь о связывателе пользовательской модели DateTime здесь

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...