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()方法也相当简单。

  • 相关阅读:
    6-2 播放厅模块基础环境构建
    6-1 Eureka实战之播放厅模块章节介绍
    5-18 影片模块作业思路讲解
    5-17 影院模块表现层构建
    5-16 影院模块基础环境构建
    5-15 影院模块表结构介绍
    5-14 影片模块整体测试
    5-13 影片保存实现
    5-12 影片保存准备
    5-11 影片详情查询实现
  • 原文地址:https://www.cnblogs.com/ongoing/p/3140513.html
Copyright © 2011-2022 走看看