Дата Культура проблемы в удаленной машине - PullRequest
2 голосов
/ 09 октября 2011

Я кодирую приложение ASP.NET MVC на испанском компьютере, поэтому моя дата (дд / мм / гггг).

Но мой удаленный VPS использует en-US W2k8, поэтому, когда я создаю датув этой машине это будет (мм / дд / гггг)

Я не уверен, как правильно решить эту проблему.

У меня есть форма регистра, которая принимает строку типа (дд/ мм / гггг) и отправьте на контроллер.Я предполагаю, что связыватель модели создаст новый DateTime, который будет отправлен контроллеру, потому что, если я вставляю (на удаленном) что-то вроде 31/10/2011, он говорит, что дата неверна, поэтому, когда связыватель модели пытается создатьDateTime это крик.

Так что мне нужен способ указать (я думаю, это будет что-то глобальное), что все мои даты будут дд / мм / гггг.Поэтому, когда связыватель модели создаст новую дату, он будет использовать этот формат.

Как мне это сделать?Я думаю, что это будет проблематично в будущем, потому что я хочу локализовать свое приложение и на английском языке, и английские пользователи будут использовать mm / dd / yyyy.

Ответы [ 2 ]

1 голос
/ 09 октября 2011

У меня нет опыта работы с MVC3, но на высоком уровне ваша проблема довольно тривиальна. Ваша текущая культура потоков должна соответствовать культуре на стороне клиента, прежде чем запрос будет привязан к объекту модели. Есть разные способы сделать это, но наиболее очевидные из них:

1) разбить приложение на подпапки культуры верхнего уровня. То есть превратите ваш / my_url / в / en / my_url /, / sp / my_url / и т. д. Добавьте каждый файл Web.config с соответствующей настройкой культуры. Это, вероятно, больше работы, чем вы хотите вложить.

2) опубликовать информацию о культуре вместе с данными формы и перехватить ее перед привязкой. Я уверен, что есть какое-то событие, которое вы можете обработать перед выполнением действия вашего контроллера. Вы можете добавить туда 1 строку для установки текущей культуры потоков в зависимости от параметра post.

Вероятно, есть способ объединить эти два на основе сопоставления запросов. Что-то вроде / {language} / my_url /. Как я уже сказал, я на самом деле не использую MS-версию шаблона проектирования MVC настолько, чтобы знать его технические детали.

0 голосов
/ 09 октября 2011

Вы можете указать культуру в файле веб-конфигурации

...