基於ASP.NET MVC Web應用程序的請求首先通過一個UrlRoutingModule的對象(HTTP模塊)。這個模塊匹配請求,並且執行路由選擇。這個UrlRoutingModule對象選擇第一個匹配當前請求的路由對象。如果沒有路徑匹配,這個UrlRoutingModule什麼也不做,讓這個請求返回給常規的ASP.NET或者IIS來請求處理。
從這個被選中的Route對象,UrlRoutingModule對象獲得IRouteHandler對象(IRouteHandler對象與Route對象是相互關聯的)。一般來說,在一個MVC應用程序中,它將是MvcRouteHandler實例。這個IRouteHandler實例創建一個IHttpHandler對象,並且將它傳遞給IHttpContext對象。默認情況下,MVC IHttpHandler實例就是MvcHandler對象。然後,這個MvcHandler對象選擇controller,controller將最終提交這個請求。
這個module 和 handler是ASP.NET MVC框架的入口點。它們執行下列行為:
選擇合適的controller。
獲得一個具體controller實例。
調用controller的執行方法。
下表列出了一個MVC Web項目的執行的各階段。