Asp.Net MVC路由调试的好帮手RouteDebugger
来源:互联网 发布:微鲸人工智能电视 编辑:程序博客网 时间:2024/04/29 12:14
在Asp.Net MVC程序中,路由(Route)是一个非常核心的概念,可以说是MVC程序的入口,因为每一个Http请求都要经过路由计算,然后匹配到相应的Controller和Action。通常我们的路由都会注册在Global.asax.cs文件中的RegisterRoutes方法中,路由会从上往下依次匹配,因此自定义的(优先级高)的路由需要放在默认(通用)路由的前面。但是,如何确保所有的路由都是正确的,或者是没有重复的呢?RouteDebugger就是这样一个分析工具。
安装
可以使用NuGet很方便的安装RouteDebugger,在项目上面右键-"Manage NuGet Packages"-"Online"输入"RouteDebugger"然后"Install",或者在"Package Manager Console"中输入:"Install-Package routedebugger"安装即可。由于NuGet有时会莫名其妙被墙,我上传了一个压缩文件:RouteDebugger 2.1.3
注意:RouteDebugger 2.x版本对应.NET4.0和MVC3,旧版本请参考Phil Haack的ASP.NET Routing Debugger
使用
当你成功安装后,可以看到项目引用了"RouteDebugger",然后?然后按F5运行程序你就可以看到效果了。是的,你甚至都不需要配置任何一行代码!这是因为.NET4.0新增的程序集Microsoft.Web.Infrastructure允许动态注册HttpModule,RouteDebugger将格式化的路由调试信息追加(append)到每一个request里。对于.NET3.5和MVC3之前的项目,如果要使用RouteDebugger,还需要在Application_Start中注册:
protected
void
Application_Start(
object
sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}
从浏览器的输出我们可以看到详细的Route匹配信息,当前请求可以成功匹配哪些路由。
注意:{*catchall}路由是RoutDebugger自动添加的,这样即使没有任何一个路由匹配成功,也会显示相应的路由信息,而不是404(不过我本地测试发现非法url还是返回了404,有人在Phil Haack的博客提出了这个问题但是没有得到回答)。
禁用RouteDebugger
当使用了RouteDebugger后,你会发现每一个页面的后面都会附带路由信息。如果你需要禁用这个功能,打开Web.config:
将RouteDebugger:Enabled后面的value="false"即可关闭RouteDebugger模式。
- Asp.Net MVC路由调试的好帮手RouteDebugger
- Asp.Net MVC路由调试的好帮手RouteDebugger
- Asp.net MVC2 与 MVC3 路由调试好帮手RouteDebug 与 RouteDebugger
- Asp.Net MVC 4使用RouteDebugger调试Route路径
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- Asp.Net MVC 路由
- ASP.NET MVC 的URL路由介绍
- 史上最全的ASP.NET MVC路由配置
- 史上最全的ASP.NET MVC路由配置
- 史上最全的ASP.NET MVC路由配置
- profiling调试好帮手
- 使用ASP .NET (C#) 产生PDF档的好帮手—iTextSharp library(上)
- 猿猿
- C++输出上三角/下三角/菱形/杨辉三角形
- C语言位操作--奇偶校验算法
- 网站防盗链
- qsort()函数和sort()函数
- Asp.Net MVC路由调试的好帮手RouteDebugger
- 如何成为一位卓越的技术经理?
- Adobe CS6 所有产品下载地址
- 单向链表旋转
- ASP.net基础知识学习
- 图像处理-线性滤波-1 基础(相关算子、卷积算子、边缘效应)
- 让viewDidLoad和viewWillAppear各司其责
- 图像处理-线性滤波-2 图像微分(1、2阶导数和拉普拉斯算子)
- html学习