asp.net-mvc – ASP.NET MVC切换语言,如何实现?

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC切换语言,如何实现?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经开始将我的简单网站转换为ASP.NET MVC,只是为了弄乱它。我有一个切换语言功能,基本上将会话[“language”]设置为另一种语言并刷新页面。请更正我,如果这可以做得更好,但我已经做了两个控制器,并设置会议在那里。问题是最后的路由。我可以以一些整洁的方式刷新页面,还是可以得到当前的Action并重新路由呢?或者这更像是Ajax的场景?

感谢咨询!

解决方法

有什么原因你使用会话变量吗?一个更常见的解决方案是在路线中包含语言代码,即blah.com/en/info或blah.com/jp/info(适用于英文和日文)

如果您这样做,网站上的每个页面都可能包含每种语言的链接。如果您正在撰写公开访问的网站,这也将使google更容易索引您的所有内容

本文介绍如何在域中包含语言,即。 en.blah.com或jp.blah.com:http://blog.maartenballiauw.be/post/2009/05/20/ASPNET-MVC-Domain-Routing.aspx

UPDATED:这是一个简单的例子,包括URL路由中的语言代码

更改默认路由以包括语言参数:

routes.MapRoute(
"Default","{language}/{controller}/{action}/{id}",new { language = "en",controller = "Home",action = "Index",id = "" }
);

将每种语言的链接添加到您的母版页:

<li><%= Html.ActionLink(
    "Spanish",ViewContext.RouteData.Values["action"].ToString(),new { language = "es" })%></li>
<li><%= Html.ActionLink(
    "French",new { language = "fr" })%></li>
<li><%= Html.ActionLink(
    "English",new { language = "en" })%></li>

这些将返回到您所在页面链接 – 只有语言更改。

猜你在找的asp.Net相关文章