在使用MVC项目中,如果激活控制器,则就会向前台返回action执行的结果。

很多时候,根据需求,手动激活控制器来向客户端返回结果。

一、激活实例代码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));

特别说明:

控制器都继承自IController,在控制器激活之后调用Execute()方法,执行请求处理,会向客户端返回运行结果。

namespace System.Web.Mvc
{
//
// 摘要:
// 定义控制器所需的方法。
public interface IController
{
//
// 摘要:
// 执行指定的请求上下文。
//
// 参数:
// requestContext:
// 请求上下文。
void Execute(RequestContext requestContext);
}
}

更多:

ASP.NET MVC——Controller的激活

关于上下文

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

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

    一.引言 此篇博文紧接上篇博文进行阐述,本篇博文阐述的主题是Controller激活和url路由 二.总述 ASP.NET路由系统是HTTP请求抵达服务端的第一道屏障,它根据注册的路由规则对拦截的请求 ...

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

    一.引言 好久没有写博客了,前一段时间学习了Controller激活的一篇很好的博文(链接),在此做个学习总结. 二.Controller 2.1 IController Controller类型直接 ...

  3. ASP.NET MVC 控制器激活(一)

    ASP.NET MVC 控制器激活(一) 前言 在路由的篇章中讲解了路由的作用,讲着讲着就到了控制器部分了,从本篇开始来讲解MVC中的控制器,控制器是怎么来的?MVC框架对它做了什么?以及前面有的篇幅 ...

  4. ASP.NET MVC 控制器激活(二)

    ASP.NET MVC 控制器激活(二) 前言 在之前的篇幅中,用文字和图像来表示了控制器的激活过程,描述的角度都是从框架默认实现的角度去进行描述的,这样也使得大家都可以清楚的知道激活的过程以及其中涉 ...

  5. ASP.NET MVC 控制器激活(三)

    ASP.NET MVC 控制器激活(三) 前言 在上个篇幅中说到从控制器工厂的GetControllerInstance()方法来执行控制器的注入,本篇要讲是在GetControllerInstanc ...

  6. 使用Code First建模自引用关系笔记 asp.net core上使用redis探索(1) asp.net mvc控制器激活全分析 语言入门必学的基础知识你还记得么? 反射

    使用Code First建模自引用关系笔记   原文链接 一.Has方法: A.HasRequired(a => a.B); HasOptional:前者包含后者一个实例或者为null HasR ...

  7. .NET/ASP.NET MVC Controller 控制器(IController控制器的创建过程)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...

  8. 三、ASP.NET MVC Controller 控制器(二:IController控制器的创建过程)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC IControllerFactory 控制器工厂接口 3.ASP.NETMVC DefaultControllerFactory 默认控制器工厂 4 ...

  9. ASP.NET MVC Controller的激活

    最近抽空看了一下ASP.NET MVC的部分源码,顺带写篇文章做个笔记以便日后查看. 在UrlRoutingModule模块中,将请求处理程序映射到了MvcHandler中,因此,说起Controll ...

  10. ASP.NET MVC——Controller的激活

    Controller的激活是根据在路由过程得到的Controller名称来创建对应的Controller对象.相关类如图: Controller激活的过程可通过如下序列图表示: 代码示例如下: str ...

随机推荐

  1. oracle删掉重复数据的语法

    --查询重复数据-- ) --删掉重复数据-- ) );

  2. linux系统利用yum安装其他软件或服务

    1.下载yum的配置源(最好用网易163的源,也可以使其他的源) wget http://docs.linuxtone.org/soft/lemp/CentOS-Base.repo 下载到 /etc/ ...

  3. CodeForces - 445A - DZY Loves Chessboard解题报告

    对于这题本人刚开始的时候觉得应该用DFS来解决实现这个问题,但由于本人对于DFS并不是太熟,所以就放弃了这个想法: 但又想了想要按照这个要求实现问题则必须是黑白相间,然后把是字符是'B'或'W'改为' ...

  4. linux 已有目录挂载磁盘

    1.查看当前硬盘使用状况: [root@gluster_node1 ~]# df -h Filesystem            Size  Used Avail Use% Mounted on / ...

  5. mac os develop

    . 安装PCRE Download latest PCRE. After download go to download directory from terminal. $ cd ~/Downloa ...

  6. 2013华为校园招聘java实现(大家水个回复啊)

    package 乒乒乓乓; import java.util.Scanner; /* * * author:hansongjiang 分别求整数数组里面的奇数与偶数之和 问题描述:从标准输入里面接收一 ...

  7. 五指CMS发布1.4版本,更多的新功能

    五指cms v1.4变更: 新增内容手动分页新增百度地图新增订单管理模块新增订单地址管理增加Microsoft YaHei字体新增推广邀请模块新增私密下载,下载函数 新增百度地图新增筛选功能 修正全局 ...

  8. 几年的Git使用技巧总结

    用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景.嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交流. 创建和使用git ssh key 首先设置gi ...

  9. 电脑无法识别U盘(usb类外接设备)的解决办法

    首先分析USB无法识别的硬件原因: 1.BIOS禁用了USB设备.(进入BIOS,将"Enable USB Device"修改为"Enable") 2.USB接 ...

  10. windows 下安装elasticsearch

    1.下载 elasticsearch-2.3.3.zip 注意::elasticsearch 版本太高的话,java运行不起来 elasticsearch-1.5.2下载地址 http://downl ...