MVC 路由高階 一

2021-05-25 16:24:20 字數 1231 閱讀 5036

在瀏覽器中輸入一段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...