想要从类调用控制器方法并获取控制器上下文而不向控制器发出请求?

时间:2017-12-06 06:28:06

标签: c# asp.net-mvc asp.net-mvc-4

我想从类调用控制器方法并获取控制器上下文而不向控制器发出请求。有什么方法可以做到这一点?

我可以通过创建控制器类的对象来调用方法,但是我无法获得控制器的上下文。

var controllerObj = new HomeController()
controllerObj.methodA();

并且methodA请求上下文不可用。

1 个答案:

答案 0 :(得分:1)

使用DependencyResolver在课程中获取Controller的实例。

public class Example
{    
    public static void CallActionMethod()
    {
        var controller = DependencyResolver.Current.GetService<AboutController>();
        controller.ControllerContext = new ControllerContext(System.Web.HttpContext.Current
        .Request.RequestContext, controller);    
        controller.Index();    
    }  
}

Reference