1. 程式人生 > >ASP.NET MVC底層原理與框架

ASP.NET MVC底層原理與框架

前言

鄙人有一毛病,喜歡鑽研原理性的東西,感覺只知道怎麼用還不太夠,更想知道如何實現的以及為什麼會這樣。
暑假的時候做積分系統是第一次接觸MVC,感覺MVC就是一個框架,分為Module ,view和controller,瀏覽器傳過來的資訊先到達controller,controller處理邏輯呼叫module,返回合適的view,當時對框架特別模糊,現在稍微好點,但是還是不太清楚,有明白的歡迎評論。

MVC框架圖

簡單解釋

把http請求包裝為HttpContext,用RouteTable.Routes.GetRouteData方法變為RouteData,然後把HttpContext和RouteData包裝為RequestContext,routeData.RouteHandler.GetHttpHandler(requestContext)將RequestContext請求變為httphandler,HttpContext.RemapHandler方法為HttpHandler指定處理程式,MvcHandler呼叫ProcessRequest方法通過抽象工廠來建立具體的Controller,建立好的Controller呼叫Execute(RequestContext)方法,此方法又呼叫ControllerActionInvoker的InvokeAction方法來找到modelBinder類開始執行具體的方法,將執行的結果作為ActionResult返回給InvokeAction方法,ActionResult方法執行結果返回給介面,執行結束。

超精簡解釋

你傳送的請求先進行路由匹配轉為路由資訊,然後http資訊和路由資訊一起作為請求資訊交給路由處理器,路由處理器將請求資訊轉為http處理資訊交給http處理器,http處理器講http資訊通過自己的抽象工廠造出一個Controller來,controller來執行請求資訊,通過請求資訊找到方法,執行方法,把執行的結果作為ActionResult,ActionResult再將Controller資訊執行返回給介面。

參考

總結

越深入發現越有趣,各個方法之間的呼叫就能實現如此美妙的功能。
歡迎各位小夥伴來一起探討MVC的原理。