У меня есть приложение ASP.Net MVC со следующим сопоставлением маршрутов:
context.MapRoute("Empty","", new { controller = "Home", action = "Index" });
context.MapRoute("Info","/Info", new { controller = "Info", action = "Index" });
context.MapRoute("Base","/Info/Base", new { controller = "Info", action = "Base" });
Мне нужно добавить языковой префикс к URL-адресу как сегменту, чтобы URL-адрес выглядел так:
www.something.com/en
www.something.com/en/Info
www.something.com/en/Info/Base
Я легко достигаю этого, добавляя параметр languageCode к URL:
context.MapRoute("Empty","/{languageCode}", new { controller = "Home", action = "Index" });
context.MapRoute("Info","/{languageCode}/Info", new { controller = "Info", action = "Index" });
context.MapRoute("Base","/{languageCode}/Info/Base", new { controller = "Info", action = "Base" });
К сожалению, этот параметр должен быть необязательным.Но когда я пропускаю его в URL под этими маршрутами - у меня ошибка 404.
Есть идеи, как это реализовать?Добавление languageCode = UrlParameter.Optional не помогает, оно работает только в том случае, если необязательный параметр является конечным URL.