ASP.NET 3.5路由总结篇
来源:互联网 发布:平面设计相关软件 编辑:程序博客网 时间:2024/05/17 02:35
URL Routing是非常重要的一块技术体系,笔者将URL Routing的知识进行梳理后得出本文,旨在同大家分享,希望能够起到抛砖引玉的作用。
1. 什么是URL Routing?
所谓URL Routing(URL路由),指的是在Web中,URL不再是文件目录中的一个文件,而是一个说明有关URL路由的字符串,开发者可以自定义该字符串的格式。
2. 为什么要使用URL Routing?
主要目的:URL更加的友好,方便web使用者理解相关页面的功能。至于其它目的嘛,这个就太广了,甚至可以在使用中慢慢挖掘它的用处。
3. URL Routing是MVC才有的吗?
URL Routing的程序集System.Web.Routing位于.NET框架3.5的SP1版本中,是与ASP.NET MVC框架分离的,因此,在WebForm项目中也可以使用路由。
4. 如何在WebForm中使用路由?
要在WebForm中使用路由,只需要完成4个步骤即可:
Ø 添加对System.Web.Routing的引用;
Ø 创建一个实现IRouteHandler接口的类,如WebFormRouteHandler类;
Ø 在Global.asax.cs中将我们创建的RouteHandler进行全局应用配置;
Ø Web.config中配置System.Web.Routing的引用
Web.config中配置System.Web.Routing的引用的代码如下:
5. 如何定义URL Routing?
开发者一般通过Global.asax.cs文件,在Application_Start()中设置路由定义,通过静态类RouteTable的属性Routes来设置URL路由,关于URL Routing的定义,是比较灵活的。
6. 如何设定URL Routing的参数默认值?
当你定义一个路由时,你可以把一个缺省的值赋给一个参数。如果URL中没有提供此参数值,那么将使用此缺省值。你可以为一个路由设置缺省值,这可以通过把一个字典赋值给Route类的Defaults属性来实现。下列示例给出了一个带有缺省值的路由。
当URL路由处理一个URL请求时,本例中所定义的路由将产生如下列表格所示的结果。
URL
参数值
/Category
action = "show"
categoryName = "food"
/Category/add
action = "add"
categoryName = "food"
/Category/add/beverages
action = "add"
categoryName= "beverages"
7. 如何为URL Routing添加约束?
当你把路由定义添加到路由集合时,你可以添加约束条件。下面的示例添加的约束用于限制在locale和year参数中应该包括什么样的值。
8. Routing的扩展方法
扩展方法的由来:路由程序集(System.Web.Routing)是在2008年8月11日更新的.NET 3.5框架SP1版本中发布的,而ASP.NET 3.5 MVC 1.0版本是在2009年3月18日才正式发布。在ASP.NET MVC版本的不断改进中,微软的开发团队感觉到以往的路由设置给开发者带来不便,但是路由的程序集已经发布,所以将扩展方法加在了System.Web.Mvc程序集的RouteCollectionExtemsion类中。
关于Routing的扩展方法的UML及重载方法如下图所示:
9. 如何自定义路由约束?
要实现自定义路由约束,实际上非常的简单,只需要实现IRouteConstraint接口中的Match()方法即可。
10. 如何优化路由设置?
Ø 将最常用的路由存放在路由表的最前面
Ø 在View中指定路由的名称。这样,就不会寻找其它匹配的路由。
11. 路由解析的工作机制分析
路由解析是按照一定的管道进行的,路由解析的管道图如下所示:
出处:http://wlb.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
- ASP.NET 3.5路由总结篇
- ASP.NET 3.5路由总结篇
- ASP.NET 3.5路由总结篇
- ASP.NET MVC5 路由知识总结
- 认识 ASP.NET 3.5 MVC 路由 理解默认路由表
- 认识 ASP.NET 3.5 MVC 路由 创建自定义路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- ASP.NET 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net路由系统
- ASP.NET 路由配置
- ASP.NET MVC路由扩展:路由映射
- ubuntu 10.10 屏幕闪的解决方法
- 《.NET 4.0面向对象编程漫谈》勘误表(2011年1月14日更新)
- 无题
- Java生成随机字符串的代码
- START WITH...CONNECT BY 学习!
- ASP.NET 3.5路由总结篇
- phpmyadmin登录问题和require出现乱码
- Chapter 6 -- SystemC From Gound 读书心得
- 关于dvd subtitle与effect效果有冲突问题(thinkvd开发日志)
- Linux-2.6.30内核在TE2410上的移植
- .NET引用类型与值类型
- VisualSVN server安装及使用 转
- 淘宝专卖去除办法
- 项目的技术总结