1、 ASP.NET MVC 是什麼?設計模式
ASP.NET MVC是微軟官方提供的以MVC模式爲基礎的ASP.NET Web應用程序(Web Application)框架,它由Castle的MonoRail而來,日前最新版本是ASP.NET MVC 4.0。是將一個Web應用分解爲:Model、View和Controller。ASP.NET MVC框架提供了一個能夠代替ASP.NET WebForm的基於MVC設計模式的應用。瀏覽器
MVC的優勢:服務器
(1)、經過把項目分紅Model、View和Controller,使得複雜項目更加容易維護,減小項目之間的耦合;框架
(2)、沒有使用ViewState和服務器表單控件,能夠更方便的控制應用程序的行爲;單元測試
(3)、應用程序經過Controller來控制程序請求,並提供了原生的UrlRouting功能來重寫Url;測試
(4)、使Web程序對單元測試的支持更加出色;spa
(5)、在團隊開發模式下表現更出衆。設計
二、MVC 包含的關鍵技術:orm
ActionResult:Action 的返回類型對象
Filter:過濾器
ModelBinder:Model綁定器
Url Routing:Url路由規則
三、MVC Web 項目的執行階段:
階段 |
詳細信息 |
接收對應用程序的第一個請求 |
在 Global.asax 文件中,Route 對象將添加到 RouteTable 對象中。 |
執行路由 |
UrlRoutingModule 模塊使用 RouteTable 集合中第一個匹配的 Route 對象來建立 RouteData 對象,而後使用所建立的對象建立 RequestContext 對象 |
建立 MVC 請求處理程序 |
MvcRouteHandler 對象將建立 MvcHandler 類的實例,並將 RequestContext 實例傳遞給處理程序 |
建立控制器 |
MvcHandler 對象使用 RequestContext 實例標識用於建立控制器實例的 IControllerFactory 對象(一般是 DefaultControllerFactory 類的實例) |
執行控制器 |
MvcHandler 實例調用控制器的 Execute 方法 |
調用操做 |
對於從 ControllerBase 類繼承的控制器,與該控制器關聯的 ControllerActionInvoker 對象將決定要調用的 controller 類的操做方法,而後調用該方法 |
執行結果 |
操做方法將接收用戶輸入,準備合適的響應數 據,而後經過返回結果類型來執行結果。可執行的內置結果類型包括:ViewResult(呈現視圖而且是最經常使用的結果類型)、 RedirectToRouteResult、RedirectResult、ContentResult、JsonResult、FileResult 和 EmptyResult |
簡單的描述一下:
步驟1:建立RouteTable
當ASP.NET應用程序第一次啓動的時候纔會發生第一步。RouteTable把URL映射到Handler。
步驟2:UrlRoutingModule攔截請求
第二步在咱們發起請求的時候發生。UrlRoutingModule攔截了每個請求而且建立和執行合適的Handler。
步驟3:執行MvcHandler
MvcHandler建立了控制器,而且把控制器傳入ControllerContext,而後執行控制器。
步驟4:執行控制器
控制器檢測要執行的控制器方法,構建參數列表而且執行方法。
步驟5:調用RenderView方法
大多數狀況下,控制器方法調用RenderView()來把內容呈現回瀏覽器。Controller.RenderView()方法把這個工做委託給某個ViewEngine來作。