Controller的激活(1)

Public interface IController
{
       void Execute(RequestContext requestContext)
}

  

Public abstract Class ControllerBase:IController
{
        protected virtual void Execute(RequestContext requestContext);
        protected abstract void ExecuteCore();
        public Class ControllerContext  ControllerContext {get;set;}
        public TempDataDictionary TempData{get;set;}
        public object ViewBag{[return:Dynamic] get;}
        public ViewDataDictionary ViewData{get;set;}
}    

ControllerBase 拥有的几个重要属性,TempData,ViewData,ViewBag,他们泳衣存储从Controller向View传递的数据或者变量,其中TempData 和ViewData 具有基于字典的数据结构,Key和Value分别表示变量的名称和值,二者的不同之处在于前者仅仅用于存储临时数据,并且设置的变量被第一次读取之后就会被移除,换句话说通过TempData设置的变量只能被读取一次,ViewBag和ViewData共享着相同的数据,他们之间的不同之处是前者是一个动态对象,我们可以指定任何属性(动态属性名将作为数据字典的Key)

  

时间: 2024-08-10 17:02:37

Controller的激活(1)的相关文章

ASP.NET MVC——Controller的激活

Controller的激活是根据在路由过程得到的Controller名称来创建对应的Controller对象.相关类如图: Controller激活的过程可通过如下序列图表示: 代码示例如下: string controllerName = this.RequestContext.RouteData.Controller;  IControllerFactory controllerFactory = ControllerBuilder.Current.GetControllerFactory(

ASP.NET MVC Controller的激活

最近抽空看了一下ASP.NET MVC的部分源码,顺带写篇文章做个笔记以便日后查看. 在UrlRoutingModule模块中,将请求处理程序映射到了MvcHandler中,因此,说起Controller的激活,首先要从MvcHandler入手,MvcHandler实现了三个接口:IHttpAsyncHandler, IHttpHandler, IRequiresSessionState. 其处理逻辑主要实现在同步和异步的ProcessRequest方法中,总的来说,该方法在执行的时候,大致经历

总体介绍ASP.NET Web API下Controller的激活与释放流程

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 通过<ASP.NET Web API的Controller是如何被创建的?>我们已经对HttpController激活系统的核心对象有了深刻的了解,这些对象包括用于解析程序集和有效HttpController类型的AssembliesReso

Controller的激活(2)

通过VS 的Controller 创建想到创建的Controller 类型 实际上继承了抽象类System.Web.Mvc.Controller,他是ControllerBase的子类,抽象类System.Web.Mvc.Controller 除了继承ControllerBase之外,他还显示的实现了IController 和IAsyncController接口以及代表ASP.NET MVC 四大筛选器AuthorizationFilter,ActionFilter,ResultFilter,E

白话ASP.NET MVC之二:Controller激活系统的概览

前文简介:我们抽象类路由规则的对象,RouteBase是路由对象的抽象基类,ASP.NET 的路由系统中有唯一一个从RouteBase继承的路由对象,那就是Route类型了.我们注册了路由对象Route,UrlRoutingModule截获请求,把当前请求的Url地址和RouteTable路由表中注册的路由对象一个一个的比较,如果没有找到就返回Null,请求就到此终止了.如果有匹配的路由对象,选择第一个匹配的Route对象,并且根据该Route对象,生成了路由数据RouteData对象,本对象是

004. Asp.Net Routing与MVC 之二: 请求如何激活Controller和Action

上篇讲到 请求到达 MvcRouteHandler ,并且透过 IRouteHandler.GetHttpHandler 获取到了真正的处理程序 MvcHandler 这次我们看看,MvcHandler是如何依据请求,来激活对应的controller和Action来处理请求的. 一.先看看MvcHandler 的核心内容 1: public class MvcHandler : IHttpAsyncHandler, IHttpHandler, IRequiresSessionState 2: {

ASP.NET MVC进阶之路:深入理解Controller激活机制并使用Ioc容器创建对象

本文标题说是"深入理解Controller"其实有点“标题党”的味道了.本篇只会探讨"Controller"的激活机制,也就是如何创建Controller的并调用的.本篇不是讲解Controller底层相关知识,不过后期博文会对其进行介绍. 0X1 DefaultControllerFactory DefaultControllerFactory对象可以说是Controller创建激活的一个重要类,在默认情况下(这里的默认情况指没有向MVC指定负责创建Control

NET/ASP.NET MVC Controller 控制器(一:深入解析控制器运行原理)

阅读目录: 1.开篇介绍 2.ASP.NETMVC Controller 控制器的入口(Controller的执行流程) 3.ASP.NETMVC Controller 控制器的入口(Controller的继承体系) 4.ASP.NETMVC IController Factory 控制器工厂(Controller的创建) 1]开篇介绍 经过前一篇文章.NET/ASP.NET Routing路由(深入解析路由系统架构原理) 的讲解,我们对ASP.NETRouting路由系统的整个运行机制有了一个

asp.net mvc Controller Factory

此文摘要小妞之路,记录一下,方便自己查看学习 Controller Factory控制器工厂: 一般在实际项目中的用法:使用内置的Controller Factory,叫 DefaultControllerFactory. 当 DefaultControllerFactory 类接收到一个 controller 实例的请求时,在 DefaultControllerFactory 类内部通过 GetControllerType 方法来获得 controller 的类型,然后把这个类型传递给 Get