在瀏覽器中輸入一段url位址,就可以開啟**瀏覽效果,在你回車後等待**開啟的哪一小段時間裡,後台是怎麼樣處理的呢?
下面來說說mvc路由知識:
---------------------------------目錄大綱---------------------------------
1.路由管道解析
2.urlroutingmodule類
3.iroutehandler介面
4.ihttphandler介面
一、路由管道解析
使用者請求-->urlroutingmodule(路由解析)-->匹配路由(routetable,route)-->iroutehandler(路由處理)-->ihttphandler(http處理)-->...
當使用者發起乙個url請求,urlroutingmodule來響應使用者的請求,來分析匹配路由得到route物件,然後由相應的iroutehandler來進行路 由處理,最後分發到ihttphandler相應的物件來定位執行對應的action方法。
這裡的urlroutingmodule繼承ihttpmodule類,我們自己也可以寫路由解析**,只要寫乙個繼承ihttpmodule的類並在webconfig中配 置即可。
urlroutingmodule的預設配置如下:
二.urlroutingmodule類
在上面我們已經簡單的說了一下urlroutingmodule類,哪麼urlroutingmodule是如何解析路由,匹配路由的,怎樣交由iroutehandler處理程式處理路由的呢? 下面簡單的來講:
比如下面:把乙個route物件加到routecollection中,這樣urlroutingmodule就可以在執行的時候獲取route路由列表了。
程式一進來會先後執行: void context_postresolverequestcache(object sender, eventargs e)方法和 void context_postmaprequesthandler(object sender, eventargs e) 在這兩個方法裡就是處理匹配路由。
其中 ihttphandler hand = handler.gethttphandler(new requestcontext(context, routedata)); 這一句是獲取ihttphandler 處理程式。
程式測試用而以,寫的比較粗糙,少了很多判斷。
有關用mvc做的**,大家可以試試:
MVC路由規則
路由解析過程 這是routing元件的兩個重要的作用!例項一 系統預設提供的路由格式,下面是系統給的預設 public static void registerroutes routecollection routes 2 axd 4 5 routes.maproute 6 default 路由名稱...
MVC 路由 概述
設定url路由 url路徑中,大括號 內部的代表引數。作為分割符,不再大括號內的則作為常量。值得注意的是,和作為2個關鍵字由mvc路由控制,如果確實需要用這個名字命名引數,可以在前面加上 例如。預設的設定路由在global.asax檔案中 public static void registerrou...
MVC雜記 路由
在學習mvc的過程中,記錄一些基礎但很必要的東西。學習mvc很多同學都喜歡使用預設的路由配置,而不關心怎麼去利用它實現一些複雜的或者自定義的配置,下面結合msdn一起學習一下 1.mvc路由有什麼用處?2.路由定義的 和非路由定義的 有什麼區別?答 在不使用路由的 asp.net 應用程式中,對 u...