Ограничения маршрута
Вы должны будете использовать ограничение маршрута на первом маршруте, который определит, как должна формироваться строка культуры.Вместо этого попробуйте следующее определение маршрута:
routes.MapRoute(
"Localization",
"{Culture}/{controller}/{action}/{id}",
new { Culture = "en-US", controller = "Home", action = "Index", id = UrlParameter.Optional },
new { Culture = @"\w{2}(?:-\w{2})?" }
);
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
Регулярное выражение ограничения маршрута не совсем корректно, поскольку, насколько я могу вспомнить, существуют культуры с трехбуквенными кодами.Определенное мной регулярное выражение допускает и общие культуры, такие как:
/en/Controller
или
/en-US/Controller
/en-UK/Controller
Подгонка по вашему вкусу.