转:ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发
2017-04-06 09:34
537 查看
说说传统做法的缺点
1、做过多语言的都知道这玩意儿太花时间2、多语言架构一般使用资源文件、XML或者存储数据库来实现。这样就在一定程序上降低了性能
3、页面的可读性变差,需要和资源文件进行来回切换
4、修改麻烦
5、样式兼容难调
6、JS如何处理
另类做法
传统做法看上去高大上实质上维护起来确实很费力,所以有一部分人就采用了另类做法直接做二套页面。总体来说上面一种和下面一种可以说半斤八两。上面一种显的有点档次,但维护成本并不低,页面可读性差,样式兼容难调,唯一优点是页面代码逻辑只有一套,只在这一点上占了优势。
另类做法升级版
为了快速开发和易维护性我对另类方法进行了2点升级1、重写MVC默认视图引擎
在Gobal Application_Start中添加自定义视图引擎,只看红圈内容
return view时会根据Cookie里面的语言后缀找到相应的cshtml文件,BestViewEngine具体内容如下:
2、添加扩展函数让一个js支持多种语言的cshtml (例如:index.js 可以用在 index.cshtml和index_en.cshtml)
cshtml中如何使用这个扩展函数(如下图)
JS里面调用PageLanguage属性
目录结构如下,当用户访问 /Role/index ,我们COOKIE里面存的是 en 那么 return view 本来找到的是 index.cshtml 经过我们的重写就会找到
index_en.cshtml
如果要添加更多语言我们只要添加相应的cshtml和cookie,JS和后台代码全部一致
回顾一下代码:
index_en.cshtmlindex.cshtml
统一的JS(只看红圈部分便可)
是不是比资源文件好维护呢?性能也是最高不是吗?
相关文章推荐
- ASP.NET MVC 多语言实现技巧 最简、最易维护和最快速开发
- 实现基于ASP.NET MVC快速开发平台
- 实现基于ASP.NET MVC快速开发平台
- 实现基于ASP.NET MVC快速开发平台
- 【ASP.NET Core快速入门】(十四)MVC开发:UI、 EF + Identity实现、注册实现、登陆实现
- [翻译]ASP.NET MVC 3 开发的20个秘诀(四)[20 Recipes for Programming MVC 3]:实现多语言支持
- 【ASP.NET Core快速入门】(十五)MVC开发:ReturnUrl实现、Model后端验证 、Model前端验证
- Asp.net是快速开发的代名词, 那么如何用Asp.net来实现 RIA, 高性能, 同时又不过份的失于快速开发呢?
- 在Web应用程序开发过程中利用ASP.NET MVC框架的实战技巧
- T4 模板: 为 ASP.NET MVC 开发人员快速入门指南
- ASP.NET快速开发技巧(一)
- asp.net mvc 4多级area实现技巧
- Web开发中的缓存技术之三:通过ETag实现缓存处理(ASP.NET MVC版)
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
- asp.net mvc 4多级area实现技巧
- asp.net网站MVC开发模式下实现Sitemap(站点导航)的一些经验教训
- 分享两个实用的ASP.NET开发技巧——使用WebMethod实现ajax和控件的ClientIDMode属性
- Asp.Net中实现自己的Mvc开发框架
- 基于元数据配置的asp.net数据库应用快速开发框架设计及实现
- Asp.net MVC 2 网站轻松实现多语言支持