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 System; 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文件
<?xml version="1.0" encoding="utf-8" ?> <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的扩展名
要在IIS里面映射.rails的扩展名文件到aspnet_isapi.dll 里面
然后在"映射"的标签下面点击"添加"按钮,
在可执行文件那里选择aspnet_isapi.dll的路径(eg.C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll)
然后在扩展名中填写".rails",最后记得把"检查文件是否存在"前面的勾去掉,最后当我们要点击.
8.在Views目录下创建nvelocity.properties文件,内容如下:
input.encoding=GB2312
output.encoding=GB2312
这是解决模板中中文乱码的问题