我正在尝试为包含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/
如何解决这个问题?
答案 0 :(得分:1)
HttpContext.Current.Request.Path.Replace("/en-US/", "/nl-NL/")
这不是最优雅的方式,但对我有用。 (当然你应该用当前的lang替换en-US
)