1.本次學習的代碼,比較簡單,就是在路由配置文件中,添加一個路由信息;同時添加一個相應的控制器及視圖
控制器中代碼如下
即有兩條路由匹配規則,一個Kim控制器,該控制器下有個Index的方法,和一個對應Index視圖 |
2.開始配置RouteDebugger
2.1下載程序集
RouteDebugger-2.1.3.0下載地址
2.2添加引用,并配置RouteDebugger
在網站根目錄下的web.config文件中,在<appSetting></appSetting>節點中,添加如下語句
3.開始請求,并看結果
4.看源碼,分析原因
public class RouteDebuggerHttpModule : IHttpModule{ // Methods public void Dispose() { } public void Init(Httpapplication context) { context.EndRequest += new EventHandler(RouteDebuggerHttpModule.OnEndRequest); context.BeginRequest += new EventHandler(RouteDebuggerHttpModule.OnBeginRequest); } PRivate static void OnBeginRequest(object sender, EventArgs e) { if (RouteTable.Routes.Last<RouteBase>() != DebugRoute.Singleton) { RouteTable.Routes.Add(DebugRoute.Singleton); } } private static void OnEndRequest(object sender, EventArgs e) { new DebugHttpHandler().ProcessRequest(HttpContext.Current); }}
原來在RouteDebugger中,在init()方法中,在請求管道中添加了兩個事件,即第一個管道處理事件BeginRequest和最后一個管道處理事件EndRequest,怪不得可以監視整個請求
5.擴展,路由規則的運用
6.路由約束
如果你按照上面的代碼運行一遍,你一定會有困惑。因為有時候,你的本次請求,希望它最終匹配的路由規則A,結果它匹配了路由規則B,下面我們就來解決這個問題
新聞熱點
疑難解答