C#  MVC簡單學習總結

來源:互聯網
上載者:User

下面分層次的總結Controller 處理流程:
1. 頁面處理流程
發送請求 –> UrlRoutingModule捕獲請求 –> MvcRouteHandler.GetHttpHandler() –>

MvcHandler.ProcessRequest()

2.MvcHandler.ProcessRequest() 處理流程:
使用Factory 方法擷取具體的Controller –> Controller.Execute() –> 釋放Controller對象

3.Controller.Execute() 處理流程
擷取Action –> 調用Action方法擷取返回的ActionResult –> 調用ActionResult.ExecuteResult() 方法

4.ActionResult.ExecuteResult() 處理流程
擷取IView對象-> 根據IView對象中的頁面路徑擷取Page類-> 調用IView.RenderView() 方法(內部調用

Page.RenderView方法)

通過對MVC原始碼的分析,我們瞭解到Controller對象的職責是傳遞資料,擷取View對象(實現了IView介面的

類),通知View對象顯示.

View對象的作用是顯示.雖然顯示的方法RenderView()是由Controller調用的,但是Controller僅僅是一個"

指揮官"的作用, 具體的顯示邏輯仍然在View對象中.

需要注意IView介面與具體的ViewPage之間的聯絡.在Controller和View之間還存在著IView對象.對於

ASP.NET程式提供了WebFormView對象實現了IView介面.WebFormView負責根據虛擬目錄擷取具體的Page類,然

後調用Page.RenderView().

 

類名 抽象類別 父類 功能
ContentResult     根據內容的類型和編碼,資料內容.
EmptyResult     空方法.
FileResult  abstract   寫入檔案內容,具體的寫入方式在衍生類別中.
FileContentResult   FileResult  通過 檔案byte[] 寫入檔案.
FilePathResult   FileResult  通過 檔案路徑 寫入檔案.
FileStreamResult   FileResult  通過 檔案Stream 寫入檔案.
HttpUnauthorizedResult     拋出401錯誤
JavaScriptResult      返回javascript檔案
JsonResult      返回Json格式的資料
RedirectResult      使用Response.Redirect重新導向頁面
RedirectToRouteResult      根據Route規則重新導向頁面
ViewResultBase  abstract   調用IView.Render()
PartialViewResult    ViewResultBase  調用父類ViewResultBase 的ExecuteResult方法.
重寫了父類的FindView方法.
尋找使用者控制項.ascx檔案
ViewResult    ViewResultBase  調用父類ViewResultBase 的ExecuteResult方法.
重寫了父類的FindView方法.
尋找頁面.aspx檔案

 

 

 

 

Filter的具體生存周期
這是官方站的一資料.

來自controller虛方法 的OnActionExecuting .

應用於當前Controller的Filter中的OnActionExecuting:

先執行基類的,後執衍生類別的
執行應用於Action的Filter的OnActionExecuting順序:

先執行基類的,後執衍生類別的

Action 方法

應用於Action的Filter的OnActionExecuted 的執行順序

先執行衍生類別的,後執行基類的
應用於當前Controller的Filter中的OnActionExecuted方法

先執行衍生類別的,後執行基類的
Controller中的虛方法 OnActionExecuted

 

 

介紹
System.Web.Routing - 此命名空間提供用於 URL 路由的類,通過該類可以使用不映射到物理檔案的 URL

IRouteHandler - 路由處理常式介面,自訂的路由處理常式都要實現這個介面
RequestContext - 封裝所請求的路由的相關資訊和當前的 http 上下文資訊
RouteData - 所請求的路由的相關資訊
RouteCollection - 路由集合
RouteValueDictionary - 不區分大小寫 key/value 字典表
Route - 路由的相關資訊

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.