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


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

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

  • 相关阅读:
    让php更快提供文件下载
    设计模式 03 设计模式分类
    针对配置文件操作 PHP最常用的四个ini函数
    查找算法
    排序算法
    设计模式 01 统一建模语言基础知识
    关于div和css的一些好习惯
    数据结构的基本概念
    HTML特殊转义字符对照列表
    .htaccess 详解
  • 原文地址:https://www.cnblogs.com/ongoing/p/3140513.html
Copyright © 2020-2023  润新知