MonoRail学习-介绍篇
刚刚结束了使用Castle MonoRail的一个项目,所以想将在项目中的一些片段大家一起共享一样.由于这是一个网站项目,所以使用Monorail,因为他使用MVC模式,能够很好的使得界面和代码分离,有助于网页设计人员和程序员协调工作.准备以下文章:目录如下:
MonoRails介绍
MonoRails入门实例
MonoRails LayoutsMonoRails Component
MonoRails SkipFilter
MonoRails介绍
这方面的文章有很多了,推荐查看Yok博客上的文章
MonoRails介绍 http://yok.cnblogs.com/archive/2005/11/05/269383.html
MonoRail - 生命周期及controller/action/view详解 http://yok.cnblogs.com/archive/2005/11/07/abc.html
我就在这里简单总结一下:
MonoRail是经典的MVC模式,所以其中也具有三个元素Model,Controller,View,其中MonoRail是通过Url地址来解析相应的操作的,如当你访问:/home/index.rail,对应会执行HomeController类中的Index方法,而且可以自动绑定参数和Request的数据,如访问:/home/index.rail?id=1,你可以在HomeController类中的Index方法中定义一个参数id,则在Index(int id)方法体会自动的得到id=1.
MonoRail的界面通常使用NVelocity模板语言来定义.
介绍方面就不多说了,下一节我们来通过一个实例来体验一下.
实例代码下载:/Files/maplye/MonoRailWeb.rar
虽然已经有人写了这方面的文章,
如:流腥鱼看.net 的一个简单的MonoRail例子
但是为了阅读的完整性,我还是重新边作了新的实例边写了这篇文章。
本实例使用VS2003,实例如下:
1.到官方网站下载安装文件,地址如下:
http://www.castleproject.org/index.php/Castle:Download
目前最新版本Beta5
(您也可以不需要下载,直接使用实例代码中lib中的dll)
2.添加对
Castle.MonoRail.Framework.dll
Castle.MonoRail.Framework.Views.CompositeView.dll
Castle.MonoRail.Framework.Views.NVelocity.dll
NVelocity.dll
的引用。
若你没有下载和安装Castle,在我的实例代码的lib中有这些dll的文件
3.创建一个Web项目,并在其下创建views和controllers目录
4.在controllers目录下创建HomeController.cs,并创建Index方法,代码如下:
<div style="padding-right: 5px; padding-left: 4px; font-size: 13px; padding-bottom: 4px; width: 98%; padding-top: 4px; background-color: #eeeeee; border: #cccccc 1px solid;">http://maplye.cnblogs.com/Images/OutliningIndicators/None.gifusing System;
http://maplye.cnblogs.com/Images/OutliningIndicators/None.gifusing Castle.MonoRail.Framework;
http://maplye.cnblogs.com/Images/OutliningIndicators/None.gif
http://maplye.cnblogs.com/Images/OutliningIndicators/None.gifnamespace MonoRailTest.controllers
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gifhttp://maplye.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gifhttp://www.cnblogs.com/Images/dot.gif{
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://maplye.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif /**//// <summary>
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif /// HomeController 的摘要说明。
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif /// </summary>
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif public class HomeController:Controller
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://maplye.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif http://www.cnblogs.com/Images/dot.gif{
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif public HomeController()
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://maplye.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif http://www.cnblogs.com/Images/dot.gif{
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif //
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif // TODO: 在此处添加构造函数逻辑
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif //
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif }
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif public void Index()
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gifhttp://maplye.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif http://www.cnblogs.com/Images/dot.gif{
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif PropertyBag.Add("name", "MonoRail实例");
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif }
http://maplye.cnblogs.com/Images/OutliningIndicators/InBlock.gif
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif }
http://maplye.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif}
http://maplye.cnblogs.com/Images/OutliningIndicators/None.gif
http://maplye.cnblogs.com/Images/OutliningIndicators/None.gif
页:
[1]