MonoRail学习-介绍篇(一)
MonoRail學習-介紹篇
剛剛結束了使用Castle MonoRail的一個項目,所以想將在項目中的一些片段大家一起共享一樣.由于這是一個網站項目,所以使用Monorail,因為他使用MVC模式,能夠很好的使得界面和代碼分離,有助于網頁設計人員和程序員協調工作.準備以下文章:
目錄如下:
MonoRails介紹
MonoRails入門實例
MonoRails Layouts
MonoRails 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方法,代碼如下:
using Castle.MonoRail.Framework;
namespace MonoRailTest.controllers
{
/**//// <summary>
/// HomeController 的摘要說明。
/// </summary>
public class HomeController:Controller
{
??public HomeController()
??{
???//
???// TODO: 在此處添加構造函數邏輯
???//
?? }
??public void Index()
??{
??? PropertyBag.Add("name", "MonoRail實例");
?? }
}
}
5.在Views目錄下創建home目錄下,并在home目錄下創建index.vm文件,代碼如下:
顯示信息:$name
6.配置web.config文件
<configuration>
??<configSections>
??<section name="monoRail" type="Castle.MonoRail.Framework.Configuration.MonoRailSectionHandler, Castle.MonoRail.Framework" />
</configSections>
<!--如果要使用Castle的IOC,則為-->
<!--<monoRail?? useWindsorIntegration="true"> -->
<monoRail>
??<controllers>
???<!--定義controller所在的assembly-->
???<assembly>MonoRailWeb</assembly>
??</controllers>
??<viewEngine??
??? viewPathRoot="Views"??
??? customEngine="Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine, Castle.MonoRail.Framework.Views.NVelocity" />
</monoRail>
<system.web>
??<httpHandlers>
??<!--定義httpHandler, 讓MonoRailHttpHandlerFactory接管指定擴展名的url-->
??<add verb="*" path="*.rails"??
??? type="Castle.MonoRail.Framework.MonoRailHttpHandlerFactory, Castle.MonoRail.Framework" />
??<!-- 阻止模板文件被下載 -->
??<add verb="*" path="*.vm" type="System.Web.HttpForbiddenHandler" />
</httpHandlers>
</system.web>
</configuration>
7.配置iis,在iis中注冊.rails的擴展名,查看 http://goodlyts.cnblogs.com/archive/2005/09/27/244686.html
8.在Views目錄下創建nvelocity.properties文件,內容如下:
input.encoding=GB2312
output.encoding=GB2312
這是解決模板中中文亂碼的問題
9.現在就可以訪問http://localhost:8089/home/index.rails,頁面就會出現相應的信息了。
轉載于:https://www.cnblogs.com/zengxlf/archive/2009/07/10/1520293.html
總結
以上是生活随笔為你收集整理的MonoRail学习-介绍篇(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OpenGL中的几何体实例化(OpenG
- 下一篇: 黑太阳的光辉