RouteDebug 與 RouteDebugger是什么?
在Asp.Net MVC程序中,路由(Route)是一個非常核心的概念,可以說是MVC程序的入口,因為每一個Http請求都要經過路由計算,然后匹配到相應的Controller和Action。通常我們的路由都會注冊在Global.asax.cs文件中的RegisterRoutes方法中,路由會從上往下依次匹配,因此自定義的(優先級高)的路由需要放在默認(通用)路由的前面。但是,如何確保所有的路由都是正確的,或者是沒有重復的呢?RouteDebug 與 RouteDebugger就是這樣一個分析工具。
使用方法
RouteDebug主要是用在MVC2的 RouteDebug下載
總所周知,一般引用第三個插件的時候我們都會習慣性的在項目里面增加lib文件,這里就需要把RouteDebug添加到項目的lib文件中如下圖:
接着點擊上圖看到的引用找到lib文件夾下面的RouteDebug.dll添加引用,接下來就在Global文件里面的Application_Start中注冊:
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterRoutes(RouteTable.Routes); //注冊RouteDebug RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes); }
接下來就可以測試了。
RouteDebugger主要是用在MVC3 RouteDebugger下載
RouteDebugger的使用方法和RouteDebug的差不多,都是新建一個lib文件放第三方插件,然后添加引用。MVC3的不需要在Global文件里面的Application_Start中注冊,這是因為.NET4.0新增的程序集Microsoft.Web.Infrastructure允許動態注冊HttpModule,RouteDebugger將格式化的路由調試信息追加(append)到每一個request里。這里需要注意一下,如果web.config文件中沒有如下代碼的要記得添加上
調試結果如下:
禁用路由調試功能
當你在調試MVC2的路由的時候,頁面的內容是看不到的,打開的每個頁面都是調試的路由信息。如果是調試MVC3的路由信息的時候,每個頁面的后面都會增加調試的信息。如果你不想要以上兩種情況的出現。那么分別設置如下的信息就可以實現了。
MVC2 的 RouteDubeg:
只要把之前在Global文件里面的Application_Start中注冊的信息注釋掉重新編譯就好了。
MVC3 的 RouteDubegger:
只要在Web.config文件里面將RouteDebugger:Enabled后面的value值設置為"false"即可關閉RouteDebugger模式。