これはコントローラーの正しい使い方ではないかもしれませんが、私はこの問題に気付き、それを修正する方法を見つけていませんでした。
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
}
Controller の HttpContext は、System.Web.HttpContext.Current にある「実際の」HttpContext ではないことに気付きました。
コントローラーに HttpContextBase を手動で設定する方法はありますか? または、コントローラーのインスタンスを作成するより良い方法はありますか?