永春阁
专注于技术,切不可沉湎于技术
博客园
首页
博问
闪存
新随笔
联系
订阅
管理
随笔-250 文章-0 评论-1516
MonoRail学习笔记三:使用方便功能强大的routing功能
我们浏览论坛或博客时经常会看到这样的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
当然就只是一个简单的例子,没有什么实际效果。但在这个基础上我们可以实现其他的很多功能
绿色通道:
好文要顶
关注我
收藏该文
与我联系
posted @ 2007-10-18 11:02
永春
阅读(3074)
评论(14)
编辑
收藏
发表评论
1760506
回复
引用
#1楼
2007-10-22 15:00
飘枫[未注册用户]
问下 MonoRail 的地址重写需要 注意什么吗? 为什么 我接不到值呢?
<rule>
<pattern>(/soar/)(\d+)(.)html$</pattern>
<replace><![CDATA[/Home/Index.html?AID=$2]]></replace>
</rule>
Web.config中是这么写的.
回复
引用
查看
#2楼
[
楼主
]
2007-10-22 17:09
GSpring
@飘枫
应该写成
<rule>
<pattern>(/soar/)(\d+)(.)html$</pattern>
<replace><![CDATA[/Home/Index.rails?AID=$2]]></replace>
</rule>
另外还要在web.config中配置
<add name="routing" type="Castle.MonoRail.Framework.RoutingModule, Castle.MonoRail.Framework" />
回复
引用
查看
#3楼
2007-11-24 14:52
巫云
试了N次才成功,原来BolgController要继承在SmartDispatcherController的,一开始我写的继承自Controller,郁闷N久,博主这个地方应该写明白点哦,玩死菜鸟了~~
回复
引用
查看
#4楼
[
楼主
]
2007-11-25 20:54
GSpring
@巫云
谢谢提醒,我把它加进去了
回复
引用
查看
#5楼
2008-04-25 11:45
冰隼
<routing>
<rule>
<pattern>(.*?)/(.*?)(.rails)</pattern>
<replace><![CDATA[ /$1/$2/ ]]></replace>
</rule>
</routing>
我这样配置的,但是访问页面的时候会报HTTP 404错误,请问博主知道问题的所在吗?
回复
引用
查看
#6楼
[
楼主
]
2008-04-25 12:20
永春
@冰隼
应该是你的pattern定义的有问题,转换后找不到页面
回复
引用
查看
#7楼
2008-04-30 20:04
ddr888
又学一招
请问lz自学的方法
直接看它上面的类么
monorail的文章哪里比较多 中英文均可
回复
引用
查看
#8楼
[
楼主
]
2008-05-04 08:46
永春
@ddr888
我一般是看monorail提供的例子程序的
回复
引用
#9楼
2008-09-01 10:35
tanher[未注册用户]
楼主,有一个问题...能用这个实现二级域名吗??
回复
引用
查看
#10楼
2009-07-23 17:36
zorwi
IRailsEngineContext is null. Looks like the EngineContextModule has not run for this request.
报这样的错,怎么回事???
回复
引用
查看
#11楼
2010-02-04 13:55
狸
@
zorwi
因为你用的是新版本.
你的配置应该是写成了
<httpModules>
<add name="routing" type="Castle.MonoRail.Framework.RoutingModule, Castle.MonoRail.Framework" />
<add name="monorail" type="Castle.MonoRail.Framework.EngineContextModule, Castle.MonoRail.Framework" />
</httpModules>
回复
引用
查看
#12楼
2010-02-04 13:56
狸
在1.0.0.版中,routing和monorail这两个HttpModule的初始化顺序无所谓,而新版中则要求routing在monorail之前,否则会导致地址转换出现问题。
注册用户登录后才能发表评论,请
登录
或
注册
,
返回博客园首页
。
首页
博问
闪存
新闻
园子
招聘
知识库
最新IT新闻
:
·
伊朗封杀Gmail和Facebook等互联网服务
·
分析称专利之争让谷歌苹果两败俱伤
·
Android平台发现新型手机病毒Rootsmart
·
HTC首款Android4.0手机大曝光
·
这是不是你期待的 iPad 3?
»
更多新闻...
最新知识库文章
:
·
高级编程语言的发展历程
·
如何学习一门新的编程语言?
·
学习不同编程语言的重要性
·
为什么我喜欢富于表达性的编程语言
·
计算机专业的女生为什么要学编程
»
更多知识库文章...
China-pub 2011秋季教材巡展
China-Pub 计算机绝版图书按需印刷服务
公告
本Blog版权均为本人所有,欢迎任何媒体和网站转载本人博客的内容。
本Blog的内容按原样提供,本人不提供任何形式的担保。
转载请注明出处
本公司专注于音视频、图形图像编码转换等相关开发,承接各种相关项目。(gaochun@zhisoft.com)
自2007年3月8日:
系列文章
1、
Sharepoint2007对象模型系列
2、
C#强化系列文章
3、
MOSS SDK学习系列
4、
IBatis.Net学习笔记系列
5、
MonoRail学习笔记系列
昵称:
永春
园龄:
5年7个月
粉丝:
66
关注:
3
<
2007年10月
>
日
一
二
三
四
五
六
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
搜索
常用链接
我的随笔
我的评论
我的参与
最新评论
我的标签
随笔分类
.Net(50)
(rss)
AJax(3)
(rss)
C++/VC学习(2)
(rss)
iBATIS.NET(15)
(rss)
Java(6)
(rss)
MonoRail(25)
(rss)
OS Shell(5)
(rss)
SharePoint(42)
(rss)
Windows Server(1)
(rss)
XHTML/CSS/Script(6)
(rss)
创业(3)
(rss)
企业开发(2)
(rss)
数据库(21)
(rss)
外语(1)
(rss)
项目管理(7)
(rss)
音视频、图形相关开发
(rss)
娱乐/杂记/修养(54)
(rss)
随笔档案
2010年4月 (1)
2010年3月 (1)
2010年2月 (2)
2009年4月 (1)
2009年2月 (2)
2009年1月 (1)
2008年11月 (1)
2008年10月 (1)
2008年9月 (1)
2008年8月 (3)
2008年7月 (7)
2008年6月 (1)
2008年5月 (2)
2008年4月 (12)
2008年3月 (14)
2008年2月 (3)
2008年1月 (14)
2007年12月 (17)
2007年11月 (20)
2007年10月 (31)
2007年9月 (13)
2007年8月 (25)
2007年7月 (10)
2007年6月 (1)
2007年5月 (2)
2007年4月 (10)
2007年3月 (15)
2007年2月 (7)
2007年1月 (1)
2006年12月 (3)
2006年11月 (21)
2006年10月 (5)
2006年8月 (2)
SharePoint学习
Codeplex Sharepoint
jianyi @ cnblogs
Kaneboy's Blog
Patrick Tisseghem's Blog
管理相关
下载_中计在线
中国管理之家
开源社区
C#开源资源大全
Java开源大全
SourceForge主页
门户网站
南京程序员俱乐部
积分与排名
积分 - 577931
排名 - 89
最新评论
阅读排行榜