ASP MVC 2 Сменить язык по URL - PullRequest
0 голосов
/ 28 марта 2011

Я пытаюсь создать переключатель языка для веб-сайта с двумя или более языками.

Когда я следую маршруту по умолчанию (контроллер / действие), Html.ActionLink("NL", ViewContext.RouteData.Values["action"].ToString(), new { language = "nl-NL" }, null) работает. Но при вызове из действия с параметрами он (логически) создает только ссылку на контроллер с текущим действием. Параметры игнорируются.

Мой текущий маршрут:

routes.MapRoute(
            "ProjectCategory",
            "{language}/Projects/{action}/{slug}",
            new { controller = "Projects", action = "Detail", slug = string.Empty, language = "en-US" }
        );

Ссылка, созданная с помощью Html.ActionLink:

http://localhost/mysite/nl-NL/Projects/Detail/

Как решить эту проблему?

1 Ответ

1 голос
/ 28 марта 2011
 HttpContext.Current.Request.Path.Replace("/en-US/", "/nl-NL/")

Это не самый элегантный способ, но у меня работает.(Конечно, вы должны заменить en-US текущим языком)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...