Как добавить параметр маршрута до того, как MVC выберет маршрут

Я пытаюсь добавить поддержку разных языков в существующее приложение MVC 3. Пока мои ссылки были

oldUrl -> myapp.com/Item/Details/5/some-title

И есть ссылки на сайт из разных мест в сети. Но теперь я хочу изменить URL-адрес, чтобы включить язык:

newUrl -> kmyapp.com/en/Item/Details/5/some-title

Однако я хочу, чтобы ссылки oldUrl были действительными. И вопрос в том, как мне это сделать ... Самый простой способ - добавить еще один маршрут, но у меня их уже слишком много, и это становится некрасиво, и когда я создаю URL-адреса со страницы, которая не есть язык, ссылки также не имеют языка, поэтому мне нужно сделать что-то еще.

Другой способ - переопределить что-то, что стоит непосредственно перед тем, как MVC попытается сопоставить запрос с определенным маршрутом, но уже проанализировал URL-адрес запроса и заполнил словарь routeValues. Поэтому я могу просто проверить язык, и, если он не включен в параметры маршрута, я могу добавить его самостоятельно и вызвать реализацию родительского класса для продолжения.Это возможно? На что следует обратить внимание - UrlRoutingModule , MvcHttpHandler или что-то еще? Что я могу переопределить и как указать MVC использовать мою версию?

Мы также будем признательны за любые другие идеи!

7
задан Draganov 7 February 2012 в 21:59
поделиться