步骤1:打开VS2015新建测试项目。

步骤2:创建资源文件 App_GlobalResources下。

   Resource1.resx
   Resource1.zh-cn.resx
 
步骤3:在WebApplication11.App_Code文件夹下新建类CultureModule

namespace WebApplication11.App_Code

{

public class CultureModule : IHttpModule

{

private CultureInfo currentCulture;

private CultureInfo currentUICulture;

public void Dispose() { }

public void Init(HttpApplication context)

{

context.BeginRequest += SetCurrentCulture;

context.EndRequest += RecoverCulture;

}

private void SetCurrentCulture(object sender, EventArgs args)

{

currentCulture = Thread.CurrentThread.CurrentCulture;

currentUICulture = Thread.CurrentThread.CurrentUICulture;

HttpContextBase contextWrapper = new HttpContextWrapper(HttpContext.Current);

RouteData routeData = RouteTable.Routes.GetRouteData(contextWrapper);

if (routeData == null)

{

return;

}

object culture;

if (routeData.Values.TryGetValue("lang", out culture))

{

try

{

Thread.CurrentThread.CurrentCulture = new CultureInfo(culture.ToString());

Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture.ToString());

}

catch

{ }

}

}

private void RecoverCulture(object sender, EventArgs args)

{

Thread.CurrentThread.CurrentCulture = currentCulture;

Thread.CurrentThread.CurrentUICulture = currentUICulture;

}

}

}

 
步骤4:配置路由

public static void RegisterRoutes(RouteCollection routes)

{

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

//以下是新加的路由配置,Begin-----------------------------------------------------------------

routes.MapRoute(

"Globalization", // 路由名称

"{lang}/{controller}/{action}/{id}", // 带有参数的 URL

new { lang = "zh", controller = "Home", action = "Index", id = UrlParameter.Optional }, // 参数默认值

new { lang = "^[a-zA-Z]{2}(-[a-zA-Z]{2})?$" } //参数约束

);

//-------------------End------------------------------------------------

routes.MapRoute(

name: "Default",

url: "{controller}/{action}/{id}",

defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

);

}

步骤5:配置webconfig

<system.webServer>

<modules>

<addname="CultureModule"type="WebApplication11.App_Code.CultureModule"/>

<removename="FormsAuthentication" />

</modules>

</system.webServer>

步骤6:View里面直接调用

@Resources.Resource1.String1

步骤7:直接运行,搞定!

原文地址:http://blog.csdn.net/sky_666/article/details/55667051

转: ASP.NET MVC 多语言配置的更多相关文章

  1. 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结

    为什么说JAVA中要慎重使用继承   这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...

  2. EF+LINQ事物处理 C# 使用NLog记录日志入门操作 ASP.NET MVC多语言 仿微软网站效果(转) 详解C#特性和反射(一) c# API接受图片文件以Base64格式上传图片 .NET读取json数据并绑定到对象

    EF+LINQ事物处理   在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作 ...

  3. ASP.NET MVC 多语言方案

    前言: 好多年没写文章了,工作很忙,天天加班, 每天都相信不用多久,就会升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰,想想还有点小激动~~~~ 直到后来发生了邮箱事件,我竟然忘了给邮箱密 ...

  4. ASP.NET MVC 多语言实现——URL路由

    考虑实现一个完整的基于asp.net mvc的多语言解决方案,从路由到model再到view最后到数据库设计(先挖好坑,后面看能填多少). 我所见过的多语言做得最好的网站莫过于微软的msdn了,就先从 ...

  5. ASP.NET MVC 之 路由配置

    主要操作在App_Start 目录下的 RouteConfig.cs 文件. 一.Url构造方式 1.命名参数规范+匿名对象 routes.MapRoute( name: "Default& ...

  6. asp.net MVC漏油配置总结

    URL构造 命名参数规范+匿名对象 routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}&qu ...

  7. asp.net mvc 伪静态路由配置

    asp.net mvc实现伪静态路由必须按如下方式设置好,才能访问 .htm 或者.html页面 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspne ...

  8. ASP.net MVC 多语言处理

    MVC多语言处理主要分两部分,一部分是Razor视图中的文字标签内容切换, 另一部分是javascript文件中的文标签内容切换.  这里分这两部分来说. View视图中的比较好做, 思路是使用资源文 ...

  9. ASP.Net MVC多语言

    .NET MVC 多语言网站 通过浏览器语言首选项改变MVC的语言,通过浏览器语言选项,修改脚本语言. 一.添加资源文件 1.添加App_GlobalResources文件夹. 2.添加默认的资源文件 ...

随机推荐

  1. 前端组件化Polymer入门教程(2)——Hello world

    本节为体验篇,就是让你了解它有哪些功能,不做详细说明,后面再来讲细节. 自定义元素 组件页 <link rel="import" href="../polymer- ...

  2. Maven 入门——认识Maven结构

    1.settings.xml 元素解读 localRepository 该元素表示本地 Maven 仓库的地址,不设置的话,默认为 ~/.m2/repository pluginGroups 将插件的 ...

  3. ExecutorService接口概要

    ExecutorService接口继承于Executor接口,主要提供以下额外功能: 管理终结 产生Future对象,用于跟踪一个或多个任务的进度.   ExecutorService可以被shut ...

  4. 解析Resources.arsc

    一.前言 对于APK里面的Resources.arsc文件大家应该都知道是干什么的(不知道的请看我的另一篇文章Android应用程序资源文件的编译和打包原理),它实际上就是App的资源索引表.下面我会 ...

  5. 数字三角形 (简单DP)

    问题描述 小Hi和小Ho在经历了螃蟹先生的任务之后被奖励了一次出国旅游的机会,于是他们来到了大洋彼岸的美国.美国人民的生活非常有意思,经常会有形形色色.奇奇怪怪的活动举办,这不,小Hi和小Ho刚刚下飞 ...

  6. MVC会员注销功能Cookie的应用

    我们实现了<MVC应用程序实现会员登录功能>http://www.cnblogs.com/insus/p/3466512.html 有登录就会有注销功能.此次Insus.NET练习一个MV ...

  7. RabbitMQ学习系列一:windows下安装RabbitMQ服务

    Rabbit MQ 是建立在强大的Erlang OTP平台上,因此安装Rabbit MQ的前提是安装Erlang. 第一步下载erlang:http://www.erlang.org/download ...

  8. 联想拯救者ISK代开BIOS的方法

    按f几都没用,摁fn+f几也不会有用,ISK需要使用物理疗法

  9. .NET Core类库中读取配置文件

    最近在开发基于.NET Core的NuGet包,遇到一个问题:.NET Core中已经没有ConfigurationManager类,在类库中无法像.NET Framework那样读取App.conf ...

  10. SQL Server T—SQL 存储过程 触发器

    一.存储过程 存储过程是一组编译在单个执行计划中的T-SQL语句 存储过程:就像函数一样的会保存在数据库中(可编程性) 存储过程的优点: 1.允许模块化程序设计 2.允许更快执行如果某操作需要大量T- ...