monorail
Micheal_NET
这个作者很懒,什么都没留下…
展开
-
MonoRail学习笔记一:一个小例子
随着微软放出消息,准备发布MVC的框架,各种议论纷至沓来。以前用java、jsp对它的MVC结构、集中控制印象特别深刻,自从用了.NET后,虽然webform的控件很好用,总感觉有点怪怪的在网上搜了一下,发现早就有了MonoRail这个东东,初步感觉就好像.NET版的jsp一样(随便比喻-_-)准备花点时间把MonoRail学一下,同时在博客园上留个笔记。看了福娃的MonoRail学习-入门实例篇转载 2009-04-27 15:07:00 · 704 阅读 · 0 评论 -
MonoRail学习笔记十六:AJax在MonoRail中的使用
AJax几乎成了web2.0的一个代表,Java和Asp.net中都提供了一些AJax操作的控件。在MonoRail中也同样提供了AJax操作的共通类:AJaxHelperAJaxHelper可以指定当文本框输入变化时调用后台代码、可以监控一个Form,当Form内控件值变化时调用后台代码、可以在点击一个按钮时调用后台代码,也可以在页面加载时就调用后台代码。当然这些调用都是采用AJax转载 2009-04-27 19:22:00 · 717 阅读 · 0 评论 -
MonoRail学习笔记三:使用方便功能强大的routing功能
我们浏览论坛或博客时经常会看到这样的Url:http://www.cnblogs.com/firstyi/archive/2007/10/17/927967.html (这个是博客园中的一个链接),其实实际上是不存在927967.html这个文件的,都是通过routing进行转义的那么在MonoRail中我们可以方便的实现此功能。首先在Web.config中配置: monorail>转载 2009-04-27 15:15:00 · 684 阅读 · 0 评论 -
MonoRail学习笔记五:定制服务实现自定义功能
在上一篇MonoRail学习笔记四:MonoRail基本流程分析 中我提到,MonoRail中可以自定义一些服务。比如可以定义自己的Url解析类,来实现http://localhost:***/index.rails 等http://localhost:***/*.rails 的效果。具体步骤如下:1、修改web.config文件,在monorail节中加入以下定义 service转载 2009-04-27 15:23:00 · 677 阅读 · 0 评论 -
MonoRail学习笔记十七:TransformFilter的使用
TransformFilter是用来转换用的,比如把页面所有的内容转换成大写,或把一些关键字转换成超链接。比如我们经常看到一些博客内容中的关键字都被转换成超链接了,就可以使用TransformFilter来实现。TransformFilter都是在实际渲染页面之前执行的1、利用现成的类把小写替换成大写:controller: [TransformFilter(typeof(转载 2009-04-27 19:23:00 · 650 阅读 · 0 评论 -
MonoRail学习笔记二:框架代码下载
为了更好的学习MonoRail,我准备下载MonoRail的源代码看看。先从http://www.castleproject.org/castle/download.html 下了一个源代码,结果编译时很多东西找不到,比如缺少Castle.Components.Binder包在google上找了半天也没有解决,后来加了Castle的maillist才问到,最新的代码可以在http://bui转载 2009-04-27 15:12:00 · 689 阅读 · 0 评论 -
MonoRail学习笔记六:Filter功能使用
MonoRail中提供了Filter功能,可以在一个请求执行前或执行后执行一个特定的方法。这样我们就这样实现统一进行用户权限判断等功能。以下是一个简单的权限判断的演示:给每一个controller加入属性Filter [Filter(ExecuteEnum.BeforeAction, typeof(FilterBadHeader))] public class Fil转载 2009-04-27 15:26:00 · 670 阅读 · 0 评论 -
MonoRail学习笔记十八:在VM中可以使用哪些系统变量
我们知道在vm中可以直接使用Session、SiteRoot等,那么我们还可以使用哪些默认的系统变量呢?其实可以直接在vm中使用的系统变量都是在NVelocityViewEngine类的CreateContext方法中定义的。下面我们就看看到底定义了哪些(详见代码中的注释说明): 1 private IContext CreateContext(IRailsEngineCo转载 2009-04-27 19:28:00 · 682 阅读 · 0 评论 -
MonoRail学习笔记十九:可重复使用组件ViewComponents的使用
在MonoRail中我们可以定义一些可重用的组件,在其他需要使用的页面引入这个组件就可以了。有点相当于.NET中的自定义控件,可以节约代码,方便开发,提高重用性。在MonoRail中把这一功能叫做ViewComponent,下面就来具体看看它的使用方法:ViewComponent可以使用现成的view,可以给父view发送数据,也支持参数输入和内部多节的方式1、生成ViewComponent转载 2009-04-27 19:34:00 · 735 阅读 · 0 评论 -
MonoRail学习笔记十五:文件上传
在MonoRail中文件上传很简单,使用智能绑定方式后直接用HttpPostedFile类就可以进行操作了vm文件:1h1 align="center">Upload photoh1> 2form action="upload.rails" method="post" enctype="multipart/form-data"> 34$FormHelper.FileField("addi转载 2009-04-27 19:20:00 · 755 阅读 · 0 评论 -
MonoRail学习笔记十四:分页功能的使用
在Asp.net开发中的GridView功能比较强大,可以方便的进行分页等操作。在MonoRail中也提供了方便的分页功能,只要使用PaginationHelper就可以了。当然,你如果是在数据库端进行分页的话就不是这篇笔记考虑的范围了。Controller代码:ModelCode highlighting produced by Actipro CodeHighlighter (fre转载 2009-04-27 19:19:00 · 677 阅读 · 0 评论 -
MonoRail学习笔记四:MonoRail基本流程分析
主要分析MonoRail框架内主要的几个类之间的调用关系,特别是分析一下当我们在浏览器中输入一个链接时,后台是怎么调用的,直至最后显示出页面的一个大体流程。了解之后我们也可以知道哪一部分是可以由我们改造的。基于Castle 1.0 RC3版本,和Castle 1.0稍微有点区别首先看一下最简的一个web.config配置文件:xml version="1.0" encoding="utf-8转载 2009-04-27 15:17:00 · 679 阅读 · 0 评论 -
MonoRail学习笔记七:页面交互的输入输出方式总结
MonoRail和WebForm很大的一个区别就是没有使用viewstate,不能使用WebForm中的服务器控件。所以页面的取值、赋值都要由我们自己控制,当然MonoRail也提供了很多种页面交互的方式这篇笔记主要考虑页面之间的传取值,对于Application、Session、Cookie等不做讨论下面列出我看到的一些方式,有遗漏的地方,欢迎补充。注:对于中文可能乱码的情况:1、需要把如下的n转载 2009-04-27 15:37:00 · 611 阅读 · 0 评论 -
MonoRail学习笔记八:页面缓存的使用
以前版本中MonoRail是不支持页面缓存的,在1.0 RC3版中加入了页面缓存的支持,有了页面缓存之后会对性能有很大的提升。主要是通过加入了一个新的属性CacheAttribute.cs,其实后台也是同样使用了System.Web下的缓存处理的机制(以前Yok也写过一篇实现MonoRail页面缓存,他是通过编写自己的缓存类来实现的,效果也不错)使用方法很简单,如下所示:下面列出了主要的文件,要转载 2009-04-27 15:38:00 · 649 阅读 · 0 评论 -
MonoRail学习笔记九:Rescue的使用
Rescue是MonoRail中处理异常的一种机制在asp.net或者java开发中我们都要进行异常处理,即发生异常时跳转到某一个错误页面。以前很多时候我们都是自动定义一种方式来处理的,在MonoRail中提供了一种现成的机制来处理异常使用方式很简单,只要加入一个Rescue属性就可以了。我们先来看看一个最简单的方式:Controller代码: [Rescue("/er转载 2009-04-27 15:40:00 · 668 阅读 · 0 评论 -
MonoRail学习笔记十:Controller和Url的对应关系
在MonoRail里面存在Url和Controller之间的对应关系(当然,这种映射关系我们也可以修改),网上也有了一些说明,但好像不太完全。我再总结一下,有遗漏的,欢迎增加:1、 普通方式 public class HomeController : Controller { public void Index() { } }对转载 2009-04-27 15:41:00 · 779 阅读 · 0 评论 -
MonoRail学习笔记十一:页面控件的填充和验证
Mono提供很多组件可以方便的处理页面:可以自动将后台的值填充到页面,可以自动进行Javascript验证,可以自动在后台验证等。这些功能都是比较实用的,可以减少很多开发FormHelper是用来对应html页面中Form内的tag的,可以自动填充textbox等 ValidationHelper可以帮助我们在前台利用Javascript验证Castle.Components.Validator组转载 2009-04-27 19:14:00 · 894 阅读 · 0 评论 -
MonoRail学习笔记十二:layout布局的使用
在Asp.net中提供了MasterPage母版页的机制,可以实行整体风格的控制在MonoRail中同样提供了这种机制,可以方便的处理布局和一些整体风格。使用方式很简单,主要就是Layout属性:LayoutController.cs1 [Layout("/master")]2 public class LayoutController : Controller3 {4转载 2009-04-27 19:16:00 · 673 阅读 · 0 评论 -
MonoRail学习笔记十三:NVelocity的增强功能
之前我转载过一篇:《Velocity 模板使用指南》中文版[转] ,这个是基于最开始的Java版下的Velocity来说的。后来在castle的.NET版下又提供了一些增强功能,详见:NVelocity Improvements本文结合一些小例子来具体谈谈这些增强功能的使用。(有部分内容是直接翻译自NVelocity Improvements -_-)一、支持数组参数比如在Controlle转载 2009-04-27 19:17:00 · 749 阅读 · 0 评论 -
MonoRail学习笔记二十:资源文件的使用和多语言支持
-和ASP.NET一样,MonoRail也可以方便的使用资源文件,以及利用资源文件来实现多语言的支持。主要是利用了Resource和LocalizationFilter这两个属性,具体使用方法如下:1、使用资源文件Controller代码: [Resource("resx", "TestSiteNVelocity.Controllers.ResourceFile")]转载 2009-04-27 19:36:00 · 848 阅读 · 0 评论