ASP.NET MVC 生命周期

  • Application_Start
    • 這個步驟由 Global.asax 進行,其中最重要的就是 Filter Config 與 Route Config 的註冊。
  • Routing
    • 藉由 Route 的查詢,如果找到對應的路由規則,IIS 框架就會交棒給 MVC Handler ,自此 MVC 框架下的處理流程正式展開
  • Controller Init
    • MVC Handler 的入口執行點是 ProcessRequest Method,根據 HttpContext 利用工廠模式產生適合的 controller,初始化本次生命週期下的 controller 物件。 並將 requestContext 作為參數執行 IController 下的 Execute Method。
  • Action Execution
    • Controller 會藉由 ActionInvoker 來選擇 Action ,此時加入的 Action Method Selector (HttpGet / HttpPost) 便可助於 ActionInvoker 區別要使用的 Action 為何。
    • Authorization Filter
      • 而 Authorization Filter 是先於 Action 被執行前,這邊會依照 IAuthroization 的 AuthroizeCore
    • Model Binding
  • Result Execution
    • 如果 Action 回傳的是 ViewResult 的話,MVC 會進一步地呼叫實作 IViewEngine 物件中的 FindView Method。Find View 會回傳一個實作 IView Interface 的物件,經由呼叫此物件的 Render 正式將 View 生成 並回傳給用戶端。

發佈留言