特定视图呈现时发生的事件顺序
特定視圖呈現時發生的事件順序:
動作方法返回的ViewResult執行
ViewResult 使用ViewEngineCollection查找視圖
ViewEngineCollection給每個注冊的IViewEngine解析該視圖的機會。順序由集合中視圖引擎的順序決定
ViewResult使用ControllerContext,視圖名稱,ViewData和TempData創建一個ViewContext。
ViewResult調用傳入ViewContext和響應流的IView上的Render()。
如果IView實例繼承自WebFormView,發生后面的步驟。
WebFormView使用IBuildManager從一個虛擬路徑創建一個ViewPage或ViewUserControl。
WebFormView在ViewPage上設置MasterLocation,設置ViewData并且調用傳入ViewContext的RenderView()。
ViewPage存儲ViewContext,初始化HtmlHelper,AjaxHelper和UrlHelper,然后委托給你已經熟悉的base.processRequest(),因為它是IHttpHandler上的主要方法。
從動作方法返回一個ViewResult到現有響應管道執行時,你作為開發人員有多個地方可以定制呈現過程的行為。如下接口是你可以插入到自己的邏輯并且在動作方法返回之后改變默認行為的擴展點。
IView
IViewDataContainer
IViewEngine
IViewLocationCache
廣泛使用的擴展點是IViewEngine,因為這是繼承其他視圖引擎所必需的擴展點。從WebFormViewEngine繼承一個類并覆蓋FileExists()或CreateView()方法也相當簡單。
轉載于:https://www.cnblogs.com/ongoing/p/3140513.html
總結
以上是生活随笔為你收集整理的特定视图呈现时发生的事件顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 输出缓冲区清理
- 下一篇: Binding在WPF中的使用