【C#】 用Route进行URL重写
在.NET Framework 4中,微软推出了Route机制。这种机制不仅在MVC中大量运用,在WebForm中也可以使用。
和Contex.RewritePath()一样,Route功能也是写在Global.asax文件中。
1.设置默认页面
具体代码如下:

如代码所示,该路由会将网站默认转向SimpleURLRewriting页面。
实际访问后,效果如下:

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

页面后台代码:

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

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

上图中,虽然没有在占位符为{parameter}的位置设置参数,参数项显示不为空。
这是因为在设置路由时,给{parameter}设置了默认参数。

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

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

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

4.PostBack数据回送

在设置默认页面时我们会发现,与使用Contex.RewritePath()后的效果不同,
使用路由功能后,页面的URL与地址栏中的URL保持一致。
因此在PostBack的时候,无需像Contex.RewritePath()一样对Form进行改写。
现在让我们看看实际效果:
重写规则代码:


5.链接处理
对URL进行重写后,可能会导致相对链接、图片和CSS的访问路径不正确的问题。
如在EN/SimpleURLRewriting.aspx中

访问页面时

因此当如果出现URL重写导致相对路径不正确时,为了确保这个图像和链接指向正确的网址,最好指定绝对路径地址。
【C#】 用Route进行URL重写的更多相关文章
- asp.net mvc 中 一种简单的 URL 重写
asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...
- Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...
- 用.htaccess文件实现URL重写
注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html 这位博主的个人网站简洁 还有诗歌 ...
- ASP.NET Core中使用URL重写
ASP.NET Core 1.1 Preview 1 中新增了 URL Rewriting middleware ,终于可以进行 URL 重写了,实际使用体验一下. 首先要将 ASP.NET Core ...
- 微软的坑:Url重写竟然会引起IIS内核模式缓存不工作
万万没有想到!当初为了解决使用负载均衡时记录客户端IP地址的问题,在IIS URL Rewrite Module中增加了一条URL重写规则(详见迁入阿里云后遇到的Request.UserHostAdd ...
- 【url重写】
一.原理void Application_BeginRequest(object sender, EventArgs e) { //url重写 HttpApplication a ...
- UrlRewritingNet伪静态的使用方法与解决方案(URL重写)
在建站初期时,我们往往需要考虑的是使用真静态还是伪静态,这对于往后的站点配置,延展性都会产生深远的影响. 我使用伪静态的唯一目的:SEO优化.毋容置疑,伪静态在对于Spider是非常有利的,因此,我更 ...
- nginx的URL重写应用实例
1,NGINx的URL重写 NGINX 的URL重写模块用的比较多,主要使用的命令有if rewrite set break 2 if命令 语法如下"" 语法:if(conditi ...
- springMVC学习之url重写:urlrewrite with tuckey UrlRewriteFilter
在开发网站时地址栏的一些信息是我们不希望让客户看到,所以在开发时候就会涉及到url重写的问题. 下面介绍一种常用的url地址重写的方法. 1.利用maven下载相关jar文件,pom文件配置如下: & ...
随机推荐
- bug-android之INSTALL_FAILED_NO_MATCHING_ABIS
bug描述: 经常在网络上下载一些实例,自己研究 ,运行时不时会出现这个bug: Installation error: INSTALL_FAILED_NO_MATCHING_ABIS bug解决方案 ...
- 5.3(2)----机器人走方格2(CC150)
这道题只需要把障碍点都设为0就可以了. public static int countWays(int[][] map,int x, int y){ if( x < 0 || y < 0) ...
- Openstack Neutron 允许VM流量转发
neutron port-update <port-id> --port-security-enabled=False --no-security-groups
- Linux 查找指定名称的进程并显示进程详细信息
实际应用中可能有这样的场景:给定一个进程名称特征串,查找所有匹配该进程名称的进程的详细信息. 解决的办法是: (1) 先用pgrep [str] 命令进行模糊匹配,找到匹配该特征串的进程ID: (2) ...
- Sum of Left Leaves
Find the sum of all left leaves in a given binary tree. Example: 3 / \ 9 20 / \ 15 7 There are two l ...
- 用Javascript主动更行URL
参考---ttp://www.oschina.net/translate/manipulating-url-using-javascript-without-freshing-the-page var ...
- 使用Grub Rescue恢复Ubuntu引导
装了Ubuntu和Window双系统的电脑,通常会使用Ubuntu的Grub2进行引导. Grub2会在MBR写入引导记录,并将引导文件放在/boot/grub,破坏任意一项都会导致系统无法正常启动. ...
- cocos2dx 2.x实现闪电效果(贴画版)
cocos2dx 2.x实现闪电效果(非画线版) 在网上搜索到一个直接用opengl画线实现的版本,但放在游戏中效果不太搭,要求用贴图的.我这个版本用的也是画线版的算法. 闪动的时候效果还可以,每段衔 ...
- ubuntu14.04和win7共享文件夹
环境:vmware12 问题:安装了vmware-tools,但是在/mnt/hgfs下面看不到共享的文件夹. 按照网上的一些经验和教程使用如下命令: mount -t vmhgfs .host:/ ...
- 用dygraphs图表分析xdebug的trace结果
2015年12月1日 19:44:23 推荐这一篇用百度的ECharts图表工具 本文用到的js图表库: dygraphs 注: 测试数据量 19108个数据点, 最好将数据的量级调小, 这样渲染会很 ...