加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-16 00:40:03 所属栏目:asp.Net 来源:网络整理
导读:我已经开始将我的简单网站转换为ASP.NET MVC,只是为了弄乱它。我有一个切换语言功能,基本上将会话[“language”]设置为另一种语言并刷新页面。请更正我,如果这可以做得更好,但我已经做了两个控制器,并设置会议在那里。问题是最后的路由。我可以以一些整
我已经开始将我的简单网站转换为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>

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读