15 Asp.Net路由系统
1. Asp.Net路由系统介绍
Asp.Net URL 路由系统并不是专属于 ASP.NETMVC 的,而是直接建立在 ASP.NET 上,因此ASP.NET Web Forms也可以用它。整个 URL 路由系统,是通过一个名为 UrIRoutingModule 的自定义 HttpModule 实现的。
Asp.Net URL 路由系统的主要用途有两个:1. 解析用户输入的URL,调用Controler的Action方法来执行具体的功能。2. 把Controler的Action输出成URL。
具体效果:它实现了请求地址与物理文件的分离,对于原来的 Asp, ASP.NET Web Forms 应用来说,每一个有效的请求都对应着一个具体的物理地址,但是这种将 URL 与物理文件紧密绑定在一起的方式并不是一种好的解决方案。当网站能够正常高效的运行之后,也就是在解决了有无的问题之后,我们还要让网站更好。
劣 http://example.com/products/list.aspx?category=food 优 http://example.com/products/list/food 劣 http://exmaple.com/show.aspx?year=2010&month=08&day=23 优 http://example.com/show/2010/08/23
2. 请求 URL 与物理文件的分离
对于一个 ASP.NET Web Forms 应用来说,每一个有效的请求都对应着一个具体的物理文件。它有两大局限性:
• 可读性不强: 在很多情况下, URL也不仅仅具各基本的可用性(能够访问正确的网络资源), 还需要具有很好的可读性。好的 URL 设计应该让我们一眼就能看出针对它访问的目 标资源是什么。请求地址与物理文件紧密绑定会让我们完全失去了定义可读性 URL 的机会。
• SEO 优化困难: 对于网站开发来说,为了迎合搜索引擎检索的规则,我们需要对 URL 进行有效的设计使之能易于被主流的引擎检索收录,如果 URL 完全与物理地址关联,这无异于失去了 SEO 优化的能力。
3. 路由配置示例