步骤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. 页面打印pdf格式文件

    '<td><button type="button" class="btn btn-primary" data-loading-text=&q ...

  2. maven-插件-不同的开发环境指定

    通常指定 dev环境 和 prod 环境 <profiles> <profile> <id>prod</id> <build> <re ...

  3. C# 例子1

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. superset----缓存之redis

    一.概述 Superset使用Flask-Cache进行缓存,Flask-Cache支持redis,memcached,simplecache(内存),或本地文件系统)等缓存后端,如果你打算使用mem ...

  5. JVM 综述

    概览 从 JVM 的总体上看,它解决了3个问题: Java 程序的内存管理(GC & 运行时数据区). Java Class 二进制字节流的加载(ClassLoader). Java 程序的执 ...

  6. jQuery显示SQL存储过程自定义异常信息

    学习MVC应用开发,改变了Insus.NET以前ASP.NET的开发习惯,以前开发均是服务器端,而现在使用jQuery的Ajax在实现.想到与考虑了很多问题,也遇上很多问题,一些解决了,一些还留下,望 ...

  7. JS继承实现的几种方式

    //继承的几种实现: //解决方案1.通过原型继承 function Parent1(){ this.name = 'Parent1'; } function Child1(){} Child1.pr ...

  8. $.ajax()参数详解及标准写法(转)

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  9. 第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库

    第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1.  学习方法 2.  多涨见识 3.  比自己强的人一起,学习更强:比自己更聪明的人 ...

  10. Thinkphp 全选、反选 批量删除

    完整案例 前台 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...