[经验]创建支持多地区的分站功能
2013-04-23 17:34
246 查看
最近在做一个多地区分站的网站,但做了很久就没有写出来,于是迫不及待的寻找解决方案,大致确立了2种实现方式:
1.开发一个分站的功能
2.单独做一个网站
感觉工作量很大,于是搁浅了,一次偶然看到一篇文章:扩展网站支持多地区分站,基于OPS.CMS(原文地址:http://blog.ops.cc/webtech/sabvm.html)
我感觉他的实现思路比较好,通过字典的方式,以下是它实现的方法代码:
引文:
code:0345.cc
通过继承Ops.Cms.Web.Mvc.CmsController类,我们可以使用模版功能,可以调用其包括的文档,分类,搜索等页面呈现功能. 我们使用了内置的一个字典文件,这个文件的路径为:/config/label.conf
在settings节点中添加一些区域项,添加完的文件如下:
文章同时给出了一个地址供我们查看:
地址:www.xmwebs.com/gz/ www.xmwebs.com/sz/
他山之石,可以攻玉.真的很有道理,我在基础上做出了一个非常灵活的多地区分站功能,感兴趣的朋友可以和我QQ联系:188867734
1.开发一个分站的功能
2.单独做一个网站
感觉工作量很大,于是搁浅了,一次偶然看到一篇文章:扩展网站支持多地区分站,基于OPS.CMS(原文地址:http://blog.ops.cc/webtech/sabvm.html)
我感觉他的实现思路比较好,通过字典的方式,以下是它实现的方法代码:
引文:
2.编写支持分站的代码
我们创建一个新的类型文件,并存放到网站的/App_Code/目录下,在网站编译过程中会被自动编译成程序集.我们通过一个实例来说明:code:0345.cc
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web; using System.Web.Mvc; using System.Web.Routing; using Ops.Xml; public class QtEduController:Ops.Cms.Web.Mvc.CmsController { private static SettingFile file = new SettingFile(AppDomain.CurrentDomain.BaseDirectory + "config/label.conf"); public static void InitRoute(RouteCollection rt) { rt.MapRoute("SubSchool", "{area}/", new { controller = "QtEdu", action = "SchoolIndex" }, new { area = "^[a-zA-z]{2}$" } ); } public string SchoolIndex(string area) { if (file.Contains(area)) { return base.RenderTemplate("/default/school", new { name=file[area], area=area }); } else { return base.Category(area, 1); } } }
通过继承Ops.Cms.Web.Mvc.CmsController类,我们可以使用模版功能,可以调用其包括的文档,分类,搜索等页面呈现功能. 我们使用了内置的一个字典文件,这个文件的路径为:/config/label.conf
3.添加字典
登陆系统后台,在高级管理->视图管理->文件管理中,选择字典文件,并编辑在settings节点中添加一些区域项,添加完的文件如下:
<?xml version="1.0" encoding="utf-8"?>
<settings>
<add key="cc">禅城</add>
<add key="gz">广州</add>
<add key="sz">深圳</add>
<add key="zh">珠海</add>
<add key="dg">东莞</add>
</settings>
4.编辑视图
编辑我们指定的视图,将要呈现的内容表示出来.文章同时给出了一个地址供我们查看:
地址:www.xmwebs.com/gz/ www.xmwebs.com/sz/
他山之石,可以攻玉.真的很有道理,我在基础上做出了一个非常灵活的多地区分站功能,感兴趣的朋友可以和我QQ联系:188867734
相关文章推荐
- iOS 8支持P2P AirPlay功能,便于开发者创建应用程序预览
- jQuery formValidator表单校验插件ver3.0全新功能发布,支持自动创建提示层。
- Windows Phone 8 新增功能:支持第三方应用创建自定义联系人Custom Contact Store。
- Windows Phone 8 新增功能:支持第三方应用创建自定义联系人Custom Contact Store。
- InstallShield 2012 Spring新功能试用(10): 支持在安装过程创建预定义的多个Windows用户帐号和组
- iOS项目经验-创建线程的三种方式
- PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
- 去年一个百万级的小软件项目经验分享,20来个功能模块,项目不太好做有些棘手
- 利用SharePoint 2013 创建Service Desk 网站之Escalation 一线支持任务!
- iOS 用html创建带下划线的链接(类似下划线按钮的功能)
- 火狐,chrome和IE都支持的复制剪切板功能window.clipboardData.setData
- raspberry 安装apache2,使其支持ssl ,并创建自签名证书
- Win10 Build 9901新功能再曝:原生支持FLAC
- CI发送到邮箱功能(支持发送附件)
- python功能使用经验总结
- SQL Server 2005 的各种版本所支持的功能
- Xcode 创建 支持IOS4.3以上版本的应用的方法
- Android Developers:处理在电视上不支持的功能
- javascript 客户端 创建csv并下载(完美支持各浏览器,并解决了中文乱码!!!)
- jQuery插件实现文件上传功能(支持拖拽)