Asp.Net MVC--Controller激活2

一、激活实例代码1

这是在Global文件中使用

var routeData = new RouteData();
routeData.Values["controller"] = "Sys";
routeData.Values["action"] = "NotFound";
var requestContext = new RequestContext(new HttpContextWrapper(httpContext), routeData);
var controller = ControllerBuilder.Current.GetControllerFactory().CreateController(requestContext, "Sys") as SysController;
//controller.ViewData.Model=model;
(controller as IController).Execute(requestContext);
ControllerBuilder.Current.GetControllerFactory().ReleaseController(controller);

激活实例代码2

这是在controller中的情况下

string controllerName = this.RequestContext.RouteData.Controller;
IControllerFactory controllerFactory = ControllerBuilder.Current.GetControllerFactory();
IController controller = controllerFactory.CreateController(this.RequestContext, controllerName);  

controller.Execute(this.RequestContext); 

实例代码3,激活指定controller中的action并返回视图到当前上下文:

        //输出指定controller下的内容
        RouteData routeData = new RouteData();
        routeData.Values.Add("controller", "ViewOne");
        routeData.Values.Add("action", "TempTwo");
        routeData.Values.Add("name", "zhangsan");
        IController one = new ViewOneController();
        one.Execute(new RequestContext(new HttpContextWrapper(Context), routeData));

更多:

http://www.cnblogs.com/tianma3798/p/3958575.html

关于上下文

时间: 2024-08-03 21:14:59

Asp.Net MVC--Controller激活2的相关文章

ASP.NET MVC Controller激活系统详解2

一.引言 此篇博文紧接上篇博文进行阐述,本篇博文阐述的主题是Controller激活和url路由 二.总述 ASP.NET路由系统是HTTP请求抵达服务端的第一道屏障,它根据注册的路由规则对拦截的请求进行匹配并解析包含目标的Controller和Action名称的路由信息.当前ControllerBuilder具有用于激活Controller对象的ControllerFactory. ASP.NET路由系统的核心是一个叫做UrlRoutingModule的自定义HttpModule,路由的实现是

ASP.NET MVC Controller的激活

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

ASP.NET MVC——Controller的激活

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

ASP.Net MVC Controller(控制器)

Controller主要负责响应用户的输入.主要关注的是应用程序流,输入数据的处理,以及对相关视图(View)输出数据的提供. 继承自:System.Web.Mvc.Controller 一个Controller可以包含多个Action. 每一个Action都是一个方法, 返回一个ActionResult实例 一个Controller对应一个xxController.cs控制文件,对应在View中有一个xx文件夹.一般情况一个Action对应一个View页面 Controller Action方

ASP.NET MVC——Controller

Controller在ASP.NET MVC中负责控制所有客户端与服务器端的交互,并且负责协调Model与View之间的数据传递,是ASP.NET MVC的核心. 撰写Controller的基本要求: 1.Controller必须为公开类别: 2.Controller名称必须以Controller结尾: 3.必须继承ASP.NET MVC内建的Controller类别,或继承有实作IController界面的自定义类别,或自行实作IController: 4.所有动作方法必须为公开方法,任何非公

ASP.NET MVC Controller 编程所涉及到的常用属性成员

Controller (System.Web.Mvc.Controller) 1.获取路由中的各个值 Request.RequestContext.RouteData.Values["id"] 1).参考:System.Web.Mvc.Controller > Controller类 > 它的属性 2.相关参考:  html.ViewContext.RouteData.Values["controller"] , this HtmlHelper html

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

ASP.NET MVC Controller向View传值的几种方式

1)ViewBag ViewBag是动态类型,使用时直接添加属性赋值即可 ViewBag.myName 控制器代码: 1 public ActionResult Index() 2 { 3 ViewBag.name = "梁顺盛"; 4 ViewBag.message = "欢迎使用MVC设计模式~~"; 5 return View(); 6 } 视图代码: <div> <!--利用HtmlHelper创建TextBox时,使用名称与ViewBag

ASP.NET MVC Controller接收ajax post方式发送过来的json对象或数组数据

本例旨在说明我的一种Controller接收ajax提交(POST)过来的json对象或数组信息的方式,感觉应该有更好的方式,欢迎提出宝贵意见. JSON.stringify(jsonObj)不支持IE8以下浏览器 前端页面代码如下: 1 <script type="text/javascript" src="~/Scripts/jquery-1.11.3.js"></script> 2 <form id="fm"&