Как указать формат даты для привязки к модели?
Надеюсь, этот вопрос будет легким, но я ищу более часа, и я просто не нахожу ответа. Поэтому у меня есть приложение 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
Хотя он использует связующее, чтобы разделить дату и время, вы можете использовать его сообщение при создании своего настраиваемого связующего объекта.