<p>This may not be the correct way to use controllers, but I did notice this problem and hadn't figured out a way to correct it. </p>

<pre><code>public JsonResult SomeControllerAction() {

    //The current method has the HttpContext just fine
    bool currentIsNotNull = (this.HttpContext == null); //which is false    

    //creating a new instance of another controller
    SomeOtherController controller = new SomeOtherController();
    bool isNull = (controller.HttpContext == null); // which is true

    //The actual HttpContext is fine in both
    bool notNull = (System.Web.HttpContext.Current == null); // which is false        

}
</code></pre>

<p>I've noticed that the HttpContext on a Controller isn't the "actual" HttpContext that you would find in System.Web.HttpContext.Current. </p>

<p>Is there some way to manually populate the HttpContextBase on a Controller? Or a better way to create an instance of a Controller?</p>

Is it that you want to use some functionality from the controller? Or have the controller perform an action?
If it's the former, maybe that's some code that should be split out into another class. If it's the latter, you can do this to simply have that controller do a specific action:
```
```
return RedirectToAction("SomeAction", "SomeOtherController", new {param1 = "Something" });
```
```