`
wyf
  • 浏览: 432963 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

Asp.Net MVC路由调试的好帮手RouteDebugger

    博客分类:
  • MVC
 
阅读更多

RouteDebugger是什么?http://www.cnblogs.com/dingji/archive/2012/05/17/2506587.html

在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

nuget-route-debugger

注意: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中注册:

1
2
3
4
5
protected void Application_Start(object sender, EventArgs e)
{
  RegisterRoutes(RouteTable.Routes);
  RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
}

route-debugger-info

从浏览器的输出我们可以看到详细的Route匹配信息,当前请求可以成功匹配哪些路由。

注意:{*catchall}路由是RoutDebugger自动添加的,这样即使没有任何一个路由匹配成功,也会显示相应的路由信息,而不是404(不过我本地测试发现非法url还是返回了404,有人在Phil Haack的博客提出了这个问题但是没有得到回答)。

 

禁用RouteDebugger

当使用了RouteDebugger后,你会发现每一个页面的后面都会附带路由信息。如果你需要禁用这个功能,打开Web.config:

 

将RouteDebugger:Enabled后面的value="false"即可关闭RouteDebugger模式。

分享到:
评论

相关推荐

    ASP.NET MVC 5入门指南(中文PDF+源码)

    ASP.NET MVC 5入门指南 (中文PDF+源碼) 1. ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5 - 控制器 3. ASP.NET MVC 5 - 视图 4. ASP.NET MVC 5 - 将数据从控制器传递给视图 5. ASP.NET MVC 5 - 添加一个模型 6. ...

    asp.net MVC4 CMS

    ASP.NET MVC4 CMS 是一个基于微软的ASP.NET MVC4框架构建的内容管理系统,它提供了一种高效、可扩展的方式来管理和展示网站内容。MVC(Model-View-Controller)设计模式是其核心,它将应用程序分为三个主要组件:...

    Pro ASP.NET MVC 5 (精通ASP.NET MVC5框架) 中文+英文+配套源代码

    "pro-asp.net-mvc-5" 包含的源代码可以帮助读者更好地理解和实践书中介绍的概念和技术。通过阅读和分析这些代码,你可以看到MVC模式在实际项目中的应用,了解如何组织模型、视图和控制器,以及如何配置路由规则,...

    ASP.NET MVC企业实战源代码Chapter12.rar

    本书共分为12章,以符合初学者思维的方式系统地介绍ASP.NET MVC的应用技巧,并结合实际项目详细地介绍如何基于ASP.NET MVC构建企业项目。通过本书的学习,读者可以全面掌握ASP.NET MVC的开发,并从代码中获取软件...

    asp.net mvc 示例项目

    通过研究这些代码,你可以更好地理解ASP.NET MVC框架的工作原理,学习如何创建自己的ASP.NET MVC应用。这个示例项目是一个宝贵的资源,它将理论知识与实际应用相结合,帮助你掌握开发高效、可扩展的Web应用的技能。

    ASP.NET MVC5

    ASP.NET MVC5强化了这种分层结构,使得开发者可以更好地实现代码分离,提高代码的可维护性和可测试性。 C#是ASP.NET MVC5的主要编程语言,它是一种类型安全、面向对象的语言,具有丰富的特性和强大的库支持。在ASP...

    Asp.Net MVC案例教程

    在Asp.Net MVC中,路由(Routing)是连接URL请求和控制器行为的关键机制。你可以自定义路由规则,使得URL更加友好且易于理解。例如,通过设置路由,你可以将`/Home/About`映射到HomeController的About方法。 接下来...

    ASP.NET MVC5 编程实战.pdf

    对于开发者的生产力,Visual Studio IDE提供了强大的支持,包括代码智能提示、调试工具、模板和内置的测试框架,使得编写、调试和测试ASP.NET MVC5应用程序变得直观且高效。 在实际项目中,你可能学到如何使用...

    基于ASP.NET MVC项目实例

    本项目实例需要Visual Studio 2010或更高版本来运行,这是一个集成开发环境(IDE),提供了编写、调试和部署ASP.NET MVC应用程序所需的所有工具。 **4. 学习路线** 为了理解这个基于ASP.NET MVC的项目,你可以按照...

    ASP.NET MVC项目源代码设计资料

    9. **软件/插件**:标签中的"软件/插件"可能意味着该资源包含了与ASP.NET MVC相关的工具或扩展,比如调试工具、性能优化插件等,这些可以帮助开发者提升开发效率和应用程序性能。 总的来说,这个ASP.NET MVC项目源...

    ASP.NET MVC 项目集合.zip

    ASP.NET MVC 是微软开发的一款用于构建动态Web应用程序的框架,它结合了ASP.NET的优势和Model-View-Controller(MVC)设计模式的灵活性。在这个"ASP.NET MVC 项目集合.zip"压缩包中,可能包含了多个ASP.NET MVC项目...

    ASP.NET MVC项目实例

    ASP.NET MVC从一开始的设计思路就与Struts不同,它的映射是利用路由配置而非xml,从而大大降低了开发复杂度,并且比Struts要更直观,更容易上手。可是,这并不表明ASP.NET MVC就是尽善尽美的。以下是MVC的一个项目...

    基于ASP.NET MVC 2 的小程序

    ASP.NET MVC 2 提供了丰富的特性来支持这一模式,包括路由系统、模型绑定、验证和过滤器等。 路由系统是ASP.NET MVC 2 的核心部分,它允许开发者自定义URL模式,使URL更具语义化。通过在Global.asax.cs文件中的...

    【全网首发】ASP.NET MVC4开发指南(附带源码)

    在ASP.NET MVC4中,路由系统是URL到控制器方法映射的关键部分,允许开发者自定义URL结构,提高用户体验和搜索引擎优化。此外,ASP.NET MVC4引入了azor视图引擎,这是一种轻量级、高性能的模板引擎,用于生成HTML响应...

    ASP.NET MVC4 Web编程

    7. **改进的路由**:路由系统在ASP.NET MVC4中更加灵活,可以自定义路由规则,更好地控制URL结构。 8. **异步控制器**:利用.NET Framework 4.5的异步编程模型,开发者可以编写异步控制器,提高性能特别是在处理I/O...

    ASP.NET MVC4

    4. **azor视图引擎**:ASP.NET MVC4使用改进的Razor视图引擎,提供了更简洁的代码语法和更好的性能。 5. **Bundling and Minification**:这个特性允许开发者将多个CSS和JavaScript文件打包和压缩成单个文件,减少...

    ASP.NET MVC 5 网站开发之美

    ASP.NET MVC 5 是微软开发的一个强大的Web应用程序框架,它结合了ASP.NET Web Forms、Model-View-Controller(MVC)设计模式以及单页应用程序(SPA)架构的优点,为开发者提供了一个高效、灵活且可测试的平台来构建...

    dwz框架 asp.net mvc3

    通过分析这个项目,开发者可以学习如何将DWZ的组件与ASP.NET MVC3的路由、动作方法、视图等元素结合起来,实现功能完善的Web应用。 总之,DWZ框架与ASP.NET MVC3的结合,为开发人员提供了一种高效的Web开发解决方案...

    Asp.net Mvc官方源代码

    6. **依赖注入(Dependency Injection, DI)**:ASP.NET MVC支持依赖注入,以便更好地解耦代码。源代码中,通过配置IoC容器(如Unity、Autofac或Ninject)来实现DI,使得服务和组件可以在运行时动态注入到控制器和...

Global site tag (gtag.js) - Google Analytics