刚刚结束了使用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 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的扩展名,查看 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,页面就会出现相应的信息了。
分享到:
相关推荐
《Monorail项目:留言簿系统详解》 Monorail项目是一个典型的Web应用程序开发实例,其核心部分是一个名为“留言簿”(GuestBook)的...通过理解和学习这个模块,开发者可以更好地掌握MVC架构的应用,提升Web开发能力。
《Monorail项目中的文件管理:MvcFileManage深入解析》 在软件开发中,文件管理是不可或缺的一部分,尤其是在Web应用程序中。Monorail项目,作为一个轻量级的.NET MVC框架,为开发者提供了一种高效、灵活的方式来...
在这个“入门篇”中,我们将深入探讨如何使用MonoRail构建一个简单的MVC应用程序。 首先,让我们理解MVC模式的基本概念: 1. Model:模型层是应用程序的核心,包含业务逻辑和数据。它处理数据的存储和检索,以及与...
"GOYELLO Silverlight / Monorail通信库是一个用于Monorail-Silverlight通信的.NET / Monorail / Silverlight项目。" 这段描述明确了该库的主要功能,即解决在基于.NET的Monorail Web应用与基于Silverlight的客户端...
看了福娃的MonoRail学习-入门实例篇,蛮好的,不过就是在VS2005上执行有点问题,我把它稍微改动了一下。可以直接在VS2005中编译、执行了。 下载 :http://www.cnblogs.com/Files/firstyi/MonoRailSample.rar
"ShoppingCart-MonoRail.rar"这个压缩包,包含了对MonoRail框架的一个经典实例——购物车应用,是我们深入了解和学习MonoRail的宝贵资源。 MonoRail是由Castle项目开发的一个轻量级的MVC(Model-View-Controller)...
本资源包含“MonoRail基础学习文档”和“实例”,旨在帮助初学者快速入门并深入理解MonoRail的使用。 首先,让我们详细了解 MonoRail 的核心概念: 1. **Controller**:在MonoRail中,Controller是处理用户请求的...
然而,由于提供的信息较少,无法确定此处“学习资料monorail”具体指的是哪个方面,因此我将从Monorail的多个可能含义来展开讨论。 首先,如果Monorail是指一种编程框架,最知名的可能是 Castle Monorail,这是一个...
这个压缩包文件包含了一些关于Monorail的示例项目,可以帮助初学者了解和学习这个框架的工作原理。 首先,`MonoRail.sln`是Visual Studio的解决方案文件,其中包含了Monorail项目的组织结构和依赖关系。打开这个...
以下是对该方法及其应用场景的详细介绍: 1. **参数解析**: - `null`: 数据源,这里使用`null`表示数据源将在后续步骤中动态生成。 - `pagesize`: 每页显示的数据条数,在示例代码中设置为4。 - `page`: 当前...
1. **MonoRail框架介绍** MonoRail是由Castle Project开发的,它借鉴了Ruby on Rails的设计哲学,旨在简化.NET平台上的Web开发流程。MonoRail强调模型-视图-控制器(MVC)架构,提供了一种与ASP.NET不同的开发方式...
下面将详细介绍这三个技术及其组合使用的要点。 **MonoRail** MonoRail是Castle Project的一部分,是一个轻量级的MVC(Model-View-Controller)框架,它为.NET开发者提供了类似Ruby on Rails的开发体验。MonoRail...
:monorail: 单轨| 网络设计系统Monorail for React帮助开发人员执行。 这些组件由SimSpace的工程师和UX设计师的核心团队开发,可实现可靠的开发工作流程,以构建美观且功能强大的Web项目。快速开始将Monorail添加到...
MonoRail .NET是一个开源的Web应用程序框架,设计用于替代ASP.NET,它提供了更灵活的开发模式和更高的可扩展性。 MonoRail这个名字来源于铁路系统中的单轨列车,寓意其为单一轨道上的应用程序框架,强调轻量级和高效...
【100% Monorail Bug Description - CRX 插件】是一款专为英语环境(美国)设计的浏览器扩展程序,其主要功能是优化错误描述的显示方式,确保错误信息可以完整、清晰地呈现于屏幕的100%比例上。这对于开发者来说尤其...
Monorail是一个开源的Web应用程序框架,主要用于构建ASP.NET应用程序。在Monorail中,过滤器(Filter)是一个强大的机制,它允许开发者在特定的HTTP请求生命周期的不同阶段插入自定义的行为。过滤器在Web开发中扮演...
MonoRail是.NET平台上的一款轻量级的Web应用框架,它为开发者提供了强大的MVC(Model-View-Controller)模式支持,旨在提供比ASP.NET更灵活、更可扩展的开发环境。在 MonoRail 中实现文件上传功能,特别是整合...