zoukankan      html  css  js  c++  java
  • 特定视图呈现时发生的事件顺序

    特定视图呈现时发生的事件顺序:

    动作方法返回的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()方法也相当简单。

  • 相关阅读:
    [转载]Linux下mail使用技巧
    VTK Online教程大全
    拓扑结构与TopoDS
    三维视图变换与相机模型
    说说DoDataExchange(CDataExchange* pDX)
    Lua Lib在VC下的编译
    建立最简单的OpenCASCADE程序
    构建通用类型 继承 VS 聚合
    【软件】新瓶装老酒 MyCapture
    用std::find查找文件流中的内容
  • 原文地址:https://www.cnblogs.com/ongoing/p/3140513.html
Copyright © 2011-2022 走看看