[转]ASP.NET MVC路由设置优化的两个方法
2014-04-25 12:24
405 查看
优化路由设置有的两种方法:1、指定路由名称,在视图中使用路由名称寻找URL路由。2、将最常用的路由存放在路由表的前面。
1、指定路由名称,使用路由名称定位路由
在ASP.NET MVC的路由设置中,路由的名称是可选参数,在路由解析中没有什么用.但是路由名称可以用来生成URL路由.当开发者使用路由名称来生成URL路由时,路由模块将快速定位到指定名称的路由,从而提高路由的解析速度.
也就是说,如果该路由位于路由表中的第100个位置,路由模块将直接跳转到路由表的第100个位置,定位到指定名称的路由,否则将会通过查询的方式,顺序地查询一直查到第100个位置的路由.
以如下被设置的路由为例:
上述被设置的路由名称为:"products-route " ,在视图中可以使用如下代码生成相关链接:
上述生成的URL代码中,制定的路由名称为"products-route".假如不设置路由的名称,有可能寻找到其他匹配的路由.
2、合理设置路由顺序
优化路由设置的第二种方法,将最常用的路由放在路由表的前边.该方法不仅提高生成URL的效率,而且还提高了路由解析效率。
因为在解析路由过程中,一旦找到了匹配的路由,就会停止解析。
假如匹配的路由存放在路由表的第100个位置,那么路由模块将会通过比较、查询的方式,知道第100个位置的路由。
而如果将匹配的路由放在路由表的前面,比较次数减少了,很显然会节省寻找路由匹配的时间。
1、指定路由名称,使用路由名称定位路由
在ASP.NET MVC的路由设置中,路由的名称是可选参数,在路由解析中没有什么用.但是路由名称可以用来生成URL路由.当开发者使用路由名称来生成URL路由时,路由模块将快速定位到指定名称的路由,从而提高路由的解析速度.
也就是说,如果该路由位于路由表中的第100个位置,路由模块将直接跳转到路由表的第100个位置,定位到指定名称的路由,否则将会通过查询的方式,顺序地查询一直查到第100个位置的路由.
以如下被设置的路由为例:
以下是代码片段: routes.MapRoute("products-route", "products/{category}", new { controller = "products", action = "category", } ); |
以下是代码片段: <fieldset> <p> <%=Html.RouteLink("Show Message","products-route",new{category="beverages"}) %> </p> </fieldset> |
2、合理设置路由顺序
优化路由设置的第二种方法,将最常用的路由放在路由表的前边.该方法不仅提高生成URL的效率,而且还提高了路由解析效率。
因为在解析路由过程中,一旦找到了匹配的路由,就会停止解析。
假如匹配的路由存放在路由表的第100个位置,那么路由模块将会通过比较、查询的方式,知道第100个位置的路由。
而如果将匹配的路由放在路由表的前面,比较次数减少了,很显然会节省寻找路由匹配的时间。
相关文章推荐
- ASP.NET MVC路由设置优化的两个方法
- ASP.NET MVC如何设置路由启动
- asp.net mvc code first实体关系一对一、一对多、多对多的设置方法
- ASP.NET MVC中为DropDownListFor设置选中项的方法
- 设置Mvc路由Asp.net 与 mvc同用
- ASP.NET在MVC中MaxLength特性设置无效的解决方法
- asp.net mvc 自定义路由及其伪静态设置
- ASP.NET MVC中为DropDownListFor设置选中项的方法
- asp.net mvc设置area页面为默认路由
- ASP.NET MVC 自定义后缀路由设置
- ASP.NET MVC 自定义后缀路由设置
- ASP.NET MVC2.0学习笔记:路由设置
- Asp.Net MVC中捕捉错误路由并设置默认Not Found页面。
- ASP.NET MVC 入门3:路由设置及视图入门
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理
- 根据路由参数设置模板页(ASP.NET MVC)
- RouteCollectionExtensions.MapRoute 方法 (ASP.NET设置路由)
- Asp.net MVC 自定义路由在IIS7以上,提示Page Not Found 解决方法
- ASP.NET MVC3.0或4.0设置二级域名的方法