N2CMS Mvc Examples 学习记录 (1) – 整体解析
来源:互联网 发布:买衣服淘宝还是京东好 编辑:程序博客网 时间:2024/06/16 20:26
这个示例用到了N2框架和管理界面,这样就不用对数据的存储和管理发愁了(都交给N2了),剩下的工作就是利用N2框架来快速地搭建前台的页面。实际上既可以用WebForms来实现这些页面,也可以使用MVC 2(MVC 3好像还不支持)来实现,这个例子使用的就是后者。N2CMS提供了其他的示例和模板来帮助我们搭建更好的网站,不过从一个简单的例子来开始可以更轻松的学习和使用N2CMS。
从N2CMS的角度来看,所有的具体内容(即要显示在页面上的信息)都是一种内容项(ContentItem)的实例,不同的内容项用于存储不同格式的内容,比如新闻容器项要能获取包含的新闻的列表,而新闻项则用来存储和提供一条具体的新闻信息,评论项则用来存储和提供对某个新闻(当然不局限于新闻)的评论。在MVC中,数据显然是由模型(Model)来定义的,当然还少不了控制器(Controller)和视图(View)。
在N2CMS Mvc示例中,定义了5种内容项(表示普通内容项的ContentPage、表示评论的CommentItem、表示新闻容器或者叫做新闻列表的NewsContainer、表示新闻内容的NewsPage和表示文本构件的TextPart),按照约定,它们都必须是N2.ContentItem的子类,为简化代码,示例中提供了一个抽象父类AbstractPage,这个抽象类是N2.ContentItem的直接子类,这5个内容项类中的4个都是这个抽象类的子类,这4个类将会以页面的形式显示出来,剩下的TextPart类则被当作构件(part)来使用,构件可以嵌入到页面的某个部位,具有很强的灵活性。
基本上每个内容项类(模型)都有对应的控制器,控制器类最好定义为N2.Web.Mvc.ContentController的子类。不过值的注意的是抽象的AbstractPage类有一个对应的控制器类,而它的一个具体的子类,ContentPage,代表普通内容项,却没有对应的控制器。简单的控制器(如ContentController)不需要任何方法,因为它的父类已经提供了基本的Index()方法,如果子类有特殊的需要,可以重写此方法,并提供其他必需的方法。
有了控制器,还需要对应的视图。显然每个控制器的每个方法都有对应的视图,将会在页面中显示模型的视图用ASPX模板呈现,而以构件显示模型的视图则用ASCX模板呈现。可以使用母版而来简化公共的模板内容。
Mvc示例还提供了一个StaticController控制器和对应的视图,它没有模型,N2CMS无法管理它,所以它只能显示静态内容。
运行并安装后,就可以使用它定义好的内容项来创建不同的内容页了,整个操作过程简单易学。下面是我折腾半天后的首页截图:
- N2CMS Mvc Examples 学习记录 (1) – 整体解析
- N2CMS Mvc Examples 学习记录 (2) – 模型类
- N2CMS Mvc Examples 学习记录 (3) – 控制器类
- N2CMS Mvc Examples 学习记录 (4) – 母版页和视图
- 初学MVC 学习记录1(MVC默认页面)
- Spring 3.x MVC 入门1 -- 图解MVC整体流程
- spark学习1之examples运行
- .net MVC学习记录--1.MVC简介
- JDBC学习1-整体框架
- openfire学习:1:整体了解
- ceph存储 ceph整体学习记录(未整理较乱)
- iOS设计模式的学习记录 (1) --- 框架模式MVC
- N2CMS 实践之路 Part.1 前期准备
- N2CMS 实践之路 Tip.1 重命名的类报错怎么办
- skynet examples深入学习
- SSH整体架构记录
- Liferay整体结构记录
- Android--学习记录--sax解析
- 又浪费了一天
- 转:SSDT Hook的妙用-对抗ring0 inline hook
- 感觉这个对生活很有帮助!
- Android编程:Socket编写
- C技巧:结构体参数转成不定参数
- N2CMS Mvc Examples 学习记录 (1) – 整体解析
- 新人报道!
- 散谈游戏保护那点事~就从_TP开始入手吧
- 两张表关联比较记录是否相同
- php中的垃圾收集
- Hypertable
- 简单字符设备驱动程序浅分析
- 使用BufferedReader读取文件
- CListCtrl操作大全