.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重写的更多相关文章

  1. asp.net mvc 中 一种简单的 URL 重写

    asp.net mvc 中 一种简单的 URL 重写 Intro 在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化, ...

  2. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解

    转载:http://freeloda.blog.51cto.com/2033581/1288553 大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负 ...

  3. 用.htaccess文件实现URL重写

    注:第一部分来自 http://www.cnblogs.com/wangkongming/archive/2012/11/13/2768251.html     这位博主的个人网站简洁   还有诗歌  ...

  4. ASP.NET Core中使用URL重写

    ASP.NET Core 1.1 Preview 1 中新增了 URL Rewriting middleware ,终于可以进行 URL 重写了,实际使用体验一下. 首先要将 ASP.NET Core ...

  5. 微软的坑:Url重写竟然会引起IIS内核模式缓存不工作

    万万没有想到!当初为了解决使用负载均衡时记录客户端IP地址的问题,在IIS URL Rewrite Module中增加了一条URL重写规则(详见迁入阿里云后遇到的Request.UserHostAdd ...

  6. 【url重写】

    一.原理void Application_BeginRequest(object sender, EventArgs e)    {  //url重写        HttpApplication a ...

  7. UrlRewritingNet伪静态的使用方法与解决方案(URL重写)

    在建站初期时,我们往往需要考虑的是使用真静态还是伪静态,这对于往后的站点配置,延展性都会产生深远的影响. 我使用伪静态的唯一目的:SEO优化.毋容置疑,伪静态在对于Spider是非常有利的,因此,我更 ...

  8. nginx的URL重写应用实例

    1,NGINx的URL重写 NGINX 的URL重写模块用的比较多,主要使用的命令有if rewrite set break 2 if命令 语法如下"" 语法:if(conditi ...

  9. springMVC学习之url重写:urlrewrite with tuckey UrlRewriteFilter

    在开发网站时地址栏的一些信息是我们不希望让客户看到,所以在开发时候就会涉及到url重写的问题. 下面介绍一种常用的url地址重写的方法. 1.利用maven下载相关jar文件,pom文件配置如下: & ...

随机推荐

  1. 如何优雅地使用 Sublime Text

    Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比 于难于上手的Vim,浮肿沉重的Ecli ...

  2. C#高级编程笔记 Day 3, 2016年9月 8日 抽象类

    1.虚方法:把一个基类函数声明为 virtual,就可以在任何派生类中重写该函数. 2.在Java 中所有函数都是虚拟的,但是在C# 中,C# 要求在派生类的函数重写另一个函数时,要使用 overri ...

  3. 剑指Offer 矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?   解法,还是斐波那契数列   AC代码: class So ...

  4. 如何修复IIS7

    修复错误 运行命令提示符 fsutil resource setautoreset true c:\     打开运行输入 services.msc     启动Windows Process Act ...

  5. 深度分析Linux下双网卡绑定七种模式 多网卡的7种bond模式原理

    http://blog.csdn.net/abc_ii/article/details/9991845多网卡的7种bond模式原理 Linux网卡绑定mode共有七种(~) bond0.bond1.b ...

  6. Linux 查找指定名称的进程并显示进程详细信息

    实际应用中可能有这样的场景:给定一个进程名称特征串,查找所有匹配该进程名称的进程的详细信息. 解决的办法是: (1) 先用pgrep [str] 命令进行模糊匹配,找到匹配该特征串的进程ID: (2) ...

  7. win7桌面背景地址

    C:\Users\你的用户名\AppData\Local\Microsoft\Windows\Themes\Alaskan L\DesktopBackground

  8. ACM/ICPC 之 拓扑排序+DFS(POJ1128(ZOJ1083)-POJ1270)

    两道经典的同类型拓扑排序+DFS问题,第二题较第一题简单,其中的难点在于字典序输出+建立单向无环图,另外理解题意是最难的难点,没有之一... POJ1128(ZOJ1083)-Frame Stacki ...

  9. Divide and conquer:Matrix(POJ 3685)

    矩阵 题目大意:矩阵里面的元素按i*i + 100000 * i + j*j - 100000 * j + i*j填充(i是行,j是列),求最小的M个数 这一题要用到两次二分,实在是二分法的经典,主要 ...

  10. ios调用c#后台接口报文格式

    - NSString *soapMessage = - [NSString stringWithFormat: - @"<?xml version=\"1.0\" ...