Puede que esta no sea la forma correcta de usar los controladores, pero noté este problema y no encontré una forma de corregirlo.HttpContext en las instancias de los controladores son nulas en ASP.net MVC
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
}
me he dado cuenta de que el HttpContext en un controlador no es el "real" HttpContext que se encontraría en System.Web.HttpContext.Current.
¿Hay alguna manera de llenar manualmente la HttpContextBase en un controlador? ¿O una mejor manera de crear una instancia de un controlador?
Brad, ¿tiene algún lugar que pueda ayudar a comprender el diseño de MVC y las mejores prácticas? MVC ha sido genial hasta ahora, pero la mayoría de los ejemplos que he encontrado no son muy complejos. Solo repasan las instancias simples como actualizar un solo registro. – Hugoware
Brad, tengo el mismo problema, y esto también viene de una clase de ayuda, tal como lo recomienda. Probé la solución proporcionada por Hugoware (abajo), y eso lo solucionó. ¿Es esta la manera correcta de hacer esto? –