VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之ASP.NET MVC多语言 仿微软网站效果(转)

本文转自: https://blog.csdn.net/Cooldiok/article/details/7831351

2017年10月22日 21:31:22 Cooldiok

微软作为ASP.NET的创造者,它对于官网的结构设计肯定有值得我们借鉴和参考的地方

本项目是基于VS2017 pro开发的,将从你已经创建了一个MVC项目开始介绍: 
流程图 
这里写图片描述

1.创建语言文件 
创建App_GlobalResources文件夹 
这里写图片描述

创建Language文件夹 
这里写图片描述

创建资源文件 
这里写图片描述

这些操作做完后,目录结构应该是以下这样的 
这里写图片描述

我们打开每个资源文件,在里面添加一条TiTle数据 
这里写图片描述

我推荐使用ResX Manager来管理语言文件 
比如我已经创建了中文、英语、日语这三个语言文件,我如果要做修改的话就需要每个文件轮流修改,使用ResX Manager就能直接同时修改这三个语言文件,它还提供语言翻译功能。具体使用方法与此文无关,就不再赘述了。 
这里写图片描述

2.创建一个过滤器 
这里写图片描述

 View Code

 

3.配置路由文件 
我这边因为只有三个语言文件,所以我对于语言项的输入做了限制。

 View Code

 

4.修改HomeController.cs文件,添加修改语言函数

 View Code

 

注意:我在使用vs2015 express for web时,出现了使用Resources.Language时智能提示没出现Title的情况,此时去找一下Language.designer.cs里有无以下代码,如果没有的话则以后添加键值对的时候你们都要在此手动添加,或者把Language文件夹建在Controllers的同级目录下然后再新建资源文件等操作也能解决该问题。

 View Code

 

5.修改母版页,添加了修改语言的link

 View Code

 

6.Views/Home的三个页面我都加了显示ViewBag.Title值的代码

1 <h2>@ViewBag.Title.</h2>

 

7.现在我们来运行,看一下效果 
首次登录的时候因为url是localhost:50062/,没有语言项,所以读取浏览器默认语言“zh-CN”,然后重定向。 
这里写图片描述

以下是点击导航栏的en-US和ja-JP时的情况 
这里写图片描述

这里写图片描述

8.如果用户直接输入http://localhost:50062/Home/Index/ 
程序会重定向到http://localhost:50062/cookie里保存的语言项OR浏览器默认语言/Home/Index/

基本做到了和MSDN效果一样。


相关教程