码迷,mamicode.com
首页 > 其他好文 > 详细

【C#】 用Route进行URL重写

时间:2014-06-20 17:54:07      阅读:813      评论:0      收藏:0      [点我收藏+]

标签:blog   http   com   使用   strong   文件   

.NET Framework 4中,微软推出了Route机制。这种机制不仅在MVC中大量运用,在WebForm中也可以使用。

和Contex.RewritePath()一样,Route功能也是写在Global.asax文件中。

 1.设置默认页面

具体代码如下:

bubuko.com,布布扣

如代码所示,该路由会将网站默认转向SimpleURLRewriting页面。

实际访问后,效果如下:

bubuko.com,布布扣

 

2.配置参数

在实际项目中,我们访问网站时经常会使用参数,像这种情况应该怎么配置呢。

Global.asax:

bubuko.com,布布扣

页面后台代码:

bubuko.com,布布扣

它将获取URL中占位符为{parameter}的参数,因此通过此重写规则可访问如下页面:

bubuko.com,布布扣

但是对如下URL的请求,参数无效果

bubuko.com,布布扣

上图中,虽然没有在占位符为{parameter}的位置设置参数,参数项显示不为空。

这是因为在设置路由时,给{parameter}设置了默认参数。

bubuko.com,布布扣

 

3.设置正则表达式

除了想上面所示重写URL,设置默认页面及默认参数外,还能让占位符的参数满足一定的正则条件。

bubuko.com,布布扣

根据设置的正则条件要求,parameter必须是数字。

 

bubuko.com,布布扣

如不满足,则找不到改页面

bubuko.com,布布扣

4.PostBack数据回送

bubuko.com,布布扣

在设置默认页面时我们会发现,与使用Contex.RewritePath()后的效果不同,

使用路由功能后,页面的URL与地址栏中的URL保持一致。

因此在PostBack的时候,无需像Contex.RewritePath()一样对Form进行改写。

 

现在让我们看看实际效果:

重写规则代码:

bubuko.com,布布扣

bubuko.com,布布扣    bubuko.com,布布扣

 

5.链接处理

对URL进行重写后,可能会导致相对链接、图片和CSS的访问路径不正确的问题。

如在EN/SimpleURLRewriting.aspx中

bubuko.com,布布扣    bubuko.com,布布扣

访问页面时

bubuko.com,布布扣

因此当如果出现URL重写导致相对路径不正确时,为了确保这个图像和链接指向正确的网址,最好指定绝对路径地址。

 

【C#】 用Route进行URL重写,布布扣,bubuko.com

【C#】 用Route进行URL重写

标签:blog   http   com   使用   strong   文件   

原文地址:http://www.cnblogs.com/nonkicat/p/3796590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!