How to call another controller Action From a controller in Mvc

As @mxmissile says in the comments to the accepted answer, you shouldn’t new up the controller because it will be missing dependencies set up for IoC and won’t have the HttpContext.

Instead, you should get an instance of your controller like this:

var controller = DependencyResolver.Current.GetService<ControllerB>();
controller.ControllerContext = new ControllerContext(this.Request.RequestContext, controller);

Leave a Comment