我们浏览论坛或博客时经常会看到这样的Url:http://www.cnblogs.com/firstyi/archive/2007/10/17/927967.html (这个是博客园中的一个链接),其实实际上是不存在927967.html这个文件的,都是通过routing进行转义的

那么在MonoRail中我们可以方便的实现此功能。
首先在Web.config中配置:

    <monorail>
        
        
        <routing>
            <rule>
                <pattern>(/blog/posts/)(\d+)/(\d+)(.)html$</pattern>
                <replace><![CDATA[ /blog/view.rails?year=$2&month=$3 ]]></replace>
            </rule>
        </routing>
        
    </monorail>
    
    <system.web>
        
        <httpModules>
            <add name="routing"  type="Castle.MonoRail.Framework.RoutingModule, Castle.MonoRail.Framework" />
        </httpModules>
        
    </system.web>

也就是MonoRail提供了RoutingMoudle这个类来处理

然后我们就可以直接在浏览器中输入:http://localhost:****/blog/posts/11/22.html 来进行浏览,浏览时会在后台自动调用/blog/view.rails?year=11&month=22 页面
(注:$1=/blog/posts/,每一个()里面的值都会替换成一个参数)

然后下面的就比较简单了
在Controllers/BlogController.cs中加入方法:(BolgController要从SmartDispatcherController继承)

        public void View(int year, int month)
        {
            
            PropertyBag.Add("year", year);
            PropertyBag.Add("month", month);
        }

在views/blog下加入文件view.vm

博客内容:<BR>
Blog year is $year <BR>
Blog month is $month

最后浏览的结果就是:

博客内容:
Blog year is 11
Blog month is 22

当然就只是一个简单的例子,没有什么实际效果。但在这个基础上我们可以实现其他的很多功能

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

MonoRail学习笔记三:使用方便功能强大的routing功能相关推荐

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

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

  2. Monorail学习笔记

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

  3. 【AngularJs学习笔记三】Grunt任务管理器

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...

  4. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  5. Ethernet/IP 学习笔记三

    Ethernet/IP 学习笔记三 原文为硕士论文: 工业以太网Ethernet/IP扫描器的研发 知网网址: http://kns.cnki.net/KCMS/detail/detail.aspx? ...

  6. Mr.J-- jQuery学习笔记(三十二)--jQuery属性操作源码封装

    扫码看专栏 jQuery的优点 jquery是JavaScript库,能够极大地简化JavaScript编程,能够更方便的处理DOM操作和进行Ajax交互 1.轻量级 JQuery非常轻巧 2.强大的 ...

  7. MYSQL学习笔记三:日期和时间函数

    MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...

  8. Python学习笔记三之编程练习:循环、迭代器与函数

    Python学习笔记三之编程练习 1. 编程第一步 # 求解斐波纳契数列 #/user/bin/python3#Fibonacci series:斐波那契数列 #两个元素的总和确定了下一个数 a,b= ...

  9. K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程

    K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...

最新文章

  1. linux内网机器访问外网代理设置squid
  2. BPM实例分享:如何设置表单字体样式
  3. java中定时任务和线程池_java基于线程池和反射机制实现定时任务完整实例
  4. VS2015中配置MSComm通讯控件和注意事项
  5. php阻止form提交表单提交,防止表单提交时刷新页面-阻止form表单的默认提交行为...
  6. Mybatis Integer类型参数值为0时判断为空、空字符串不通过
  7. 精读《setState 做了什么》
  8. Python chr / ord 函数区别和使用 - Python零基础入门教程
  9. Training and investigating Residual Nets 自己分析
  10. aws rds监控慢sql_AWS RDS SQL Server –启动新的数据库实例
  11. 使用ZipCodeValidatorDomainType验证不同国家的邮编
  12. 重装Windows10系统(Win10系统)
  13. Java -- IO
  14. SpeedFan 控制风扇转速
  15. edge浏览器怎么设置html5,win10怎么把edge浏览器设置为默认浏览器方法
  16. 【数据结构与算法】排序算法总结
  17. 光纤带光缆的特点及应用场景
  18. 局域网中电脑ping不通解决办法
  19. CAD2020下载AutoCAD2020下载安装详细教程
  20. 解决直接读取webapp下的文件404问题

热门文章

  1. win11 ENSP AR启动40错误解决方法:
  2. 从 Godaddy 转移域名到 Namesilo
  3. 达梦主备集群,主库部分redo被删除或损坏,故障恢复。
  4. int i2c_probe()
  5. 探索Ristretto量化工程—问题记录
  6. 策略评价1:根据交易信号Signal,1.提取交易记录,2.绝对收益和相对收益,3.交易与不交易对比,4.收盘价最大回撤,5.资金最大回撤。6.可视化图形回测。
  7. 基于java的学生选课系统_基于Java的学生选课系统.doc
  8. Redis—列表(List)、集合(Set)、哈希(Hash)、有序集合 Zset
  9. 什么人才适合学习嵌入式?嵌入式就业做什么?
  10. 简谈FIR滤波器和IIR滤波器的区别