Возможно, это неправильный способ использования контроллеров, но я заметил эту проблему и не нашел способа ее исправить.
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
}
Я заметил, что HttpContext на контроллере не является "фактическим" HttpContext, который вы найдете в System.Web.HttpContext.Current.
Есть ли способ вручную заполнить HttpContextBase на контроллере? Или лучший способ создать экземпляр контроллера?