博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Asp.Net MVC--Controller激活2
阅读量:7231 次
发布时间:2019-06-29

本文共 1653 字,大约阅读时间需要 5 分钟。

在使用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);    }}

 

更多:

转载地址:http://hypfm.baihongyu.com/

你可能感兴趣的文章
走迷宫(回溯、深搜)判断能否到终点
查看>>
Zookeeper权限管理与Quota管理
查看>>
CORS 详解
查看>>
【原】iOS学习之苹果原生代码实现Autolayout和VFL语言
查看>>
ASP.NET MVC中使用FluentValidation验证实体
查看>>
usb mass storage device
查看>>
CentOs7
查看>>
python3封装Api接口
查看>>
jar包双击执行引用外部包问题
查看>>
OI复习计划
查看>>
about
查看>>
O-Bomb(数位dp)
查看>>
hdu5032 点和查询分别按极角排序 离线做+树状数组
查看>>
hdu1428 递归形式dp(记忆化搜素):A能到B的条件是A到目的地最短路大于B到目的地最短路...
查看>>
实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(三)...
查看>>
关于VC++6.0 MFC项目运行所需的动态链接库
查看>>
由system.currentTimeMillis() 获得当前的时间
查看>>
复习日记-Linux项目发布
查看>>
The 'Microsoft Jet OLEDB 4.0 Provider' is not registered on the local machine
查看>>
Java 基础源码 switch语句判断指定月份属于一年中的哪个季度
查看>>