ASP.NET MVC创建视图过程
MvcHandler.ProcessRequest()
(1)获取Action执行结果:context2.Result
ActionExecutedContext context2 = this.InvokeActionMethodWithFilters(controllerContext, filters.ActionFilters, actionDescriptor, parameterValues |
this.InvokeActionResultWithFilters(controllerContext, filters.ResultFilters, context2.Result); |
(2)InvokeActionResultWithFilters()方法中:
this.InvokeActionResult(controllerContext, actionResult); |
actionResult.ExecuteResult(controllerContext); 如果是创建视图,实则执行:ViewResultBase.ExecuteResult(); |
(3)ViewResultBase.ExecuteResult()方法中:
ViewResultBase. ExecuteResult()方法中:(找到视图引擎,找到视图) result = this.FindView(context); 实则执行:ViewResult.FindView() |
ViewResult.FindView()方法中: ViewEngineResultresult = base.ViewEngineCollection.FindView(context, base.ViewName, this.MasterName); |
ViewResultBase属性 ViewEngineCollection
publicViewEngineCollectionViewEngineCollection // ViewEngines.Engines为静态ViewEngineCollection类型 //静态构造函数中 为ViewEngineCollection中添加了两个视图引擎对象(WebFormViewEngine,RazorViewEngine) |
(5)ViewEngineCollection.FindView()方法:
publicvirtualViewEngineResultFindView(ControllerContextcontrollerContext, stringviewName, stringmasterName) //e.FindView()为 IViewEngine.FindView() |
ViewEngineResult:(包含IView、IViewEngine类型的两个属性)
publicclassViewEngineResult |
IViewEngine:
publicinterfaceIViewEngine |
publicinterfaceIView |
ViewEngines.Engines.Insert(0, new DebugDataViewEngine());
ASP.NET MVC创建视图过程的更多相关文章
- ASP.NET MVC 5 - 视图
在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成HTML. 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所 ...
- asp.net mvc 部分视图加载区别
ASP.NET MVC 部分视图 ASP.NET(11) 版权声明:本文为博主原创文章,未经博主允许不得转载. [部分视图] ASP.NET MVC 里的部分视图,相当于 Web Form 里的 ...
- [ASP.NET MVC2 系列] ASP.Net MVC教程之《在15分钟内用ASP.Net MVC创建一个电影数据库应用程序》
[ASP.NET MVC2 系列] [ASP.NET MVC2 系列] ASP.Net MVC教程之<在15分钟内用ASP.Net MVC创建一个电影数据库应用程序> ...
- [转]ASP.NET MVC 5 - 视图
在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成HTML. 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所 ...
- ASP.NET MVC创建的网站
ASP.NET MVC创建的网站 最近在写一个网站,昨天刚写完,由于要和朋友一起测试,但是他电脑上没有环境,所以希望我在自己电脑上部署一下,让他直接通过浏览器来访问来测试,所以从昨晚到今天上午,通 ...
- Asp.net MVC Razor视图模版动态渲染PDF,Razor模版生成静态Html
Asp.net MVC Razor视图模版动态渲染PDF,Razor模版生成静态Html 1.前言 上一篇文章我开源了轮子,Asp.net Core 3.1 Razor视图模版动态渲染PDF,然后,很 ...
- ASP.NET MVC 创建控制器类过程
MvcHandler.ProcessRequestInit()方法: 1.1获取控制器的名称string requiredString = this.RequestContext.RouteData. ...
- ASP.NET MVC 4 视图页去哪里儿
这里特别感谢 swagon 提到了Displaymodeprovider,所以才有了本篇博客,也使我对[View的呈现]中寻找视图页的过程有了清晰的认识! 前戏 在MVC中,执行完Action之后,会 ...
- ASP.NET MVC Razor视图引擎攻略
--引子 看下面一段MVC 2.0的代码. <%if (Model != null){%> <p><%=Model%></p><%}%>&l ...
随机推荐
- 本地ssh连接到vbox中的linux
本机是window xp系统, 安装vbox,在vbox下安装linux,想在xp中用ssh连接linux,此时需要配置网络. 1.设置vbox的网络,选择host-only 2.设置window虚拟 ...
- 用Spark学习矩阵分解推荐算法
在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib ...
- Asp.net mvc 知多少(六)
本系列主要翻译自<ASP.NET MVC Interview Questions and Answers >- By Shailendra Chauhan,想看英文原版的可访问http:/ ...
- java基础知识点---equal,==,hashcode
1.==比较对象之间的地址是否相同 student a=new student(1); student b=new student(1); a==b false b=a; a==b true ...
- matlab最简单程序模板
% 脚本文件: 温度转换 % 文件名:temp_conversion % 目标:将输入的华氏温度转换为绝对温度 % % 版本记录: % 时间 编者 描述 % -- :: 泡泡 原始代码 % % 定义变 ...
- Java Collection 接口、Set 接口、List 接口基本操作 练习
//////// One package Chp11; import java.util.ArrayList; import java.util.List; public class TestList ...
- AJSX 传输数组
如果要利用ajax传输数组,或者传输多个(不知道有多少个)class的某一属性的值,例如: 要将这三个数据传入php编辑界面,图片显示有三个数据,但实际上,数据的多少是由数据库所导出的数据 决定的.如 ...
- 网易云直播SDK使用总结
前言: 最近公司的项目中加入中直播这部分的功能,现在的直播平台真的很多很多,以前在朋友圈看到过这张图片,没办法一次性给大家看,就只能这样截成几张给大家看看.其实按照我自己的看法,现在的直播已经没办法做 ...
- ubuntu中的apache的基本技巧
1. 显示apache的版本号 XXX@XXX-ThinkPad-Edge-E431:~$ apache2 -v Server version: Apache/ (Ubuntu) Server bui ...
- Dockerfile注意事项
准则 尽量将Dockerfile放在空目录中,如果目录中必须有其他文件,则使用.dockerignore文件. 避免安装不必须的包. 每个容器应该只关注一个功能点. 最小化镜像的层数. 多行参数时应该 ...