北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟徐东校区
  • 北大青鸟光谷校区
  • 北大青鸟宏鹏IT校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

15902769092

百日千才

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

2013-02-27 10:13来源:武汉北大青鸟光谷校区作者:武汉宏鹏

  在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

  对于一个需要支持多语言的Web应用,一个很常见的使用方式就是通过请求地址来控制界面呈现所基于的语言文化,比如我们在表示请求地址的URL中将上语言文化代码(比如en或者en-US)来指导服务器应该采用怎样的语言来显示界面的内容。对于一个ASP.NET MVC应用来说,我们很容易通过URL路由来实现这样一个功能。在具体介绍实现之前,我们通过一个简单的例子谈谈终实现的效果。在通过ASP.NET MVC项目模板创建的空Web应用中,我们创建了如下一个HomeController,默认的Action方法Index用于呈现一个登录View。作为Model的LoginInfo类包含UserName和Password两个属性,分别表示登录输入的用户名和密码。需要注意的是,在两个属性上应用了DisplayAttribute并通过资源的方式指定了显示名称以实现对多语言的支持。

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟        

  如下所示的Action方法Index对应的View的定义,这是一个基于LogInfo的强类型View。

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

  在Global.asax中,我们修改了默认添加的URL路由注册代码,使请求URL中包含相应的语言文化信息({culture})。

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

  我们直接运行该程序,并在请求地址中指定不同的Culture(en和zh),界面呈现基于的语言正是我们期望的。

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

  实际上针对URL路由的本地化可以通过具有如下定义的名为CultureAwareHttpModule的自定义HttpModule来实现。我们通过 CultureAwareHttpModule注册了HttpApplication的BeginRequest和EndRequest事件,通过URL 路由系统得到表示语言文化的路由变量culture,并对当前线程的Culture和UICulture进行了相应的设置和恢复。

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

  我们只需要通过如下配置对CultureAwareHttpModule进行注册即可。

在ASP.NET MVC中通过URL路由实现对多语言的支持-武汉北大青鸟

想了解更多ASP.NET相关技术请继续关注武汉北大青鸟官网

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟光谷校区

武汉市江夏区华泰街武昌理工学院对面

全真项目实战 入学签就业协议

Copyright (c) 2006-2021 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.