想从 class 调用控制器方法并在不向控制器发出请求的情况下获取控制器上下文?
want to call controller method from class and get controller context without making request to controller?
我想从 class 调用控制器方法并获取控制器上下文而不向控制器发出请求。有哪些可行的方法?
我可以通过创建控制器的对象来调用方法class但是我无法获取控制器的上下文。
var controllerObj = new HomeController()
controllerObj.methodA();
并且在 methodA
中请求上下文不可用。
使用 DependencyResolver 在 class 中获取 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
我想从 class 调用控制器方法并获取控制器上下文而不向控制器发出请求。有哪些可行的方法?
我可以通过创建控制器的对象来调用方法class但是我无法获取控制器的上下文。
var controllerObj = new HomeController()
controllerObj.methodA();
并且在 methodA
中请求上下文不可用。
使用 DependencyResolver 在 class 中获取 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