我们浏览论坛或博客时经常会看到这样的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. [导入]《交互设计之路——让高科技产品回归人性》读书笔记(一)
  2. 【Linux】一步一步学Linux——sleep命令(242)
  3. 最新最全vuepress零基础搭建(github搭建+新增插件)
  4. 我的四轴专用PID参数整定方法及原理
  5. 【线上直播】LiveVideoStack Meet | 长沙:多媒体与广电
  6. c语言程序 用追赶法求解方程组,编写用追赶法解三对角线性方程组的程序,并解下列方程组(3页)-原创力文档...
  7. SAP Commerce Cloud 项目 Spartacus 入门
  8. leetcode 滑动窗口小结 (二)
  9. spring4.x(10)---依赖注入-构造方法注入
  10. 中班音乐 机器人教案_中班音乐教案《小鸡出壳》含反思
  11. 独立站国际物流怎么解决?
  12. HCIE-Security Day39:理论学习:隐私保护
  13. Ubuntu U盘启动出现“Failed to load ldlinux.c32”解决
  14. JAVA实战项目--文章发布系统
  15. 区块链核心技术-P2P网络
  16. Google AI 博客:Hum to Search 项目,使用机器学习来识别随口哼唱的旋律
  17. 牛腩新闻发布--触发器语句
  18. P1551 亲戚 (并查集)
  19. linux的系统文件位置,剖析Linux系统中的文件系统路径
  20. 微信小程序授权获取手机号

热门文章

  1. mq服务器与客户端消息同步,RocketMQ:主从同步的实现
  2. 2020年全球及中国术后镇痛药行业市场现状分析,非阿片类药物需求不断增长「图」
  3. motan学习笔记 一 微博轻量级RPC框架Motan
  4. c语言自制服务器之间调用文件夹,C语言实现一种简单的应用服务器内部数据结构的思路(三)...
  5. 一名普通22届本科毕业生|前端程序员|22年年终总结
  6. 教你如何鉴别原装和组装线孔耳机
  7. 获取树结构JAVA代码设计
  8. python qq群自动加入_Python实现向QQ群成员自动发邮件的方法
  9. Python图像锐化及边缘检测(Roberts、Prewitt、Sobel、Lapllacian、Canny、LOG)
  10. 初尝Google Code