在MonoRail里面存在Url和Controller之间的对应关系(当然,这种映射关系我们也可以修改),网上也有了一些说明,但好像不太完全。我再总结一下,有遗漏的,欢迎增加:
1、 普通方式

    public class HomeController : Controller
    {
        public void Index()
        {
        }
    }

对应的是:http://***/home/index.rails, vm文件对应views/home/index.vm

2、 ControllerDetails方式

    [ControllerDetails("Extended2")]
    public class ExtendedController : Controller
    {
        public void Save()
        {
            throw new Exception();
        }
        }

对应的是:http://***/Extended2/Save.rails, vm文件对应views/Extended2/Save.vm

3、 Area方式

    [ControllerDetails(Area="subarea")]
    public class HomeController : Controller
    {
        public void Index()
        {
            
        }
    }

对应的是:http://****/subarea/home/Index.rails, vm文件对应views/subarea/home/Index.vm

4、 Default动作
可以设置:

    [DefaultAction("Index")]
    public class ServletController : Controller
    {
        public void Index(int id, string name, int age, DateTime birthday)
        {
        }
 }

那么当所有访问http://***/servlet/aa.rails时,当ServletController中没有对应方法时,都会自动执行Index方法 (vm文件对应views/servlet/aa.vm)

5、 动态动作

    [DynamicActionProvider( typeof(DynamicActionProvider1) )]
    public class DynController : Controller
    {
        
    }
    public class DynamicActionProvider1 : IDynamicActionProvider
    {
        public void IncludeActions(Controller controller)
        {
            controller.DynamicActions["index"] = new IndexDynamicAction();
        }
    }
    public class IndexDynamicAction : IDynamicAction
    {
        public void Execute(Controller controller)
        {
            controller.PropertyBag.Add("message", "hello!");
        }
    }

对应的是:http://****/dyn/Index.rails, vm文件对应views/dyn/Index.vm

那么对于某一个action在很多Controller中都会用到的情况,就可以把这个action定义在DynamicAction中

本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2007/10/26/939057.html,如需转载请自行联系原作者

MonoRail学习笔记十:Controller和Url的对应关系相关推荐

  1. MonoRail学习笔记十六:AJax在MonoRail中的使用

    AJax几乎成了web2.0的一个代表,Java和Asp.net中都提供了一些AJax操作的控件.在MonoRail中也同样提供了AJax操作的共通类:AJaxHelper AJaxHelper可以指 ...

  2. MonoRail学习笔记十五:文件上传

    在MonoRail中文件上传很简单,使用智能绑定方式后直接用HttpPostedFile类就可以进行操作了 vm文件: 1<h1 align="center">Uplo ...

  3. MonoRail学习笔记十八:在VM中可以使用哪些系统变量

    我们知道在vm中可以直接使用Session.SiteRoot等,那么我们还可以使用哪些默认的系统变量呢? 其实可以直接在vm中使用的系统变量都是在NVelocityViewEngine类的Create ...

  4. MonoRail学习笔记五:定制服务实现自定义功能

    在上一篇MonoRail学习笔记四:MonoRail基本流程分析 中我提到,MonoRail中可以自定义一些服务.比如可以定义自己的Url解析类,来实现http://localhost:***/ind ...

  5. Monorail学习笔记

    Monorail学习笔记  2008-4-19 huangxu <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:o ...

  6. Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效

    之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...

  7. Mr.J-- jQuery学习笔记(十六)--展开和收起动画折叠菜单的实现

    之前写过动画的隐藏与显示:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 动画隐藏与显示的一个小demo--对联广告:Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告 与动 ...

  8. kvm虚拟化学习笔记(十)之kvm虚拟机快照备份

    KVM虚拟化学习笔记系列文章列表 ---------------------------------------- kvm虚拟化学习笔记(一)之kvm虚拟化环境安装 http://koumm.blog ...

  9. IOS之学习笔记十五(协议和委托的使用)

    1.协议和委托的使用 1).协议可以看下我的这篇博客 IOS之学习笔记十四(协议的定义和实现) https://blog.csdn.net/u011068702/article/details/809 ...

最新文章

  1. Nginx负载均衡策略之ip_hash
  2. java并发数据共享机制_Java并发编程:核心理论之数据共享性
  3. element-ui cascader 级联选择器 存最后一级id及回显
  4. 冷知识:数学常数“e”的传奇故事
  5. JAVA GUI THREAD---***
  6. row_number() over使用方法
  7. 关于verilog的一些基础知识整理
  8. 委托和事件的一些理解笔记
  9. IAR8.3安装步骤
  10. 读书笔记——并行处理器架构
  11. java8中Lambda表达式写法详解
  12. 电表芯片CS5460A调试心得
  13. 中小企业知识管理难题怎么做?天翎与群晖携手给出最优解
  14. 单片机c51语言中 两个位变量类型是什么,51单片机中的数据类型解析
  15. 大学计算机专业绩点3.7什么水平,大学绩点3.0什么水平 绩点达到多少算优秀
  16. 浩辰3D软件新手攻略:数据管理功能详解
  17. GoLang - Go中Mocking(1)
  18. 分析iphone11销售数据
  19. 解决IE浏览器低版本兼容性问题的最快方法
  20. pycharm 将本地文件添加到library root

热门文章

  1. swiper修改轮播图下面小圆圈样式
  2. 蒙氏计算机教育目的,蒙氏五大领域的内容及目的
  3. 融合蓝牙与IoT 拓展Wi-Fi商业价值
  4. Linux——shell脚本
  5. Java水费代收_基于jsp的水费管理-JavaEE实现水费管理 - java项目源码
  6. 数论基础——数论函数(1)
  7. OR-Tools:1-线性优化,整数优化和约束优化(Linear optimization,Mixed-integer optimization,Constraint optimization)
  8. problem 1278
  9. 分析编程题c语言,二级C语言部分上机编程题详细分析
  10. 军品研制过程所需文件-进阶版