ASP MVC 2按网址更改语言

时间:2011-03-28 14:40:17

标签: c# asp.net-mvc-2 localization routing

我正在尝试为包含2种或更多语言的网站创建语言转换。

当我遵循默认路线(控制器/动作)时,Html.ActionLink("NL", ViewContext.RouteData.Values["action"].ToString(), new { language = "nl-NL" }, null)会起作用。但是当从具有参数的Action调用时,它(逻辑上)仅使用当前Action创建到Controller的链接。参数被忽略。

我目前的路线:

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 个答案:

答案 0 :(得分:1)

 HttpContext.Current.Request.Path.Replace("/en-US/", "/nl-NL/")

这不是最优雅的方式,但对我有用。 (当然你应该用当前的lang替换en-US