tutorial net mvc español curso asp c# asp.net-mvc asp.net-mvc-4

c# - español - curso de mvc 5 asp.net pdf



System.Web.HttpContextBase ''no contiene una definición para'' Current ''MVC 4 con Elmah Logging (1)

Para obtener una referencia a HttpContext.Current necesita reemplazar

HttpContext.Current

con

System.Web.HttpContext.Current

Esto se debe a que la clase Controlador define una propiedad llamada HttpContext que se define como

public HttpContextBase HttpContext { get; }

La clase HttpContext on Controller devuelve HttpContextBase que no tiene una propiedad Current.

Por lo tanto, necesita resolver adecuadamente el espacio de nombres aquí.

Tengo un proyecto C # ASP.NET MVC 4, que está usando Elmah para detectar cualquier excepción no controlada. Esto funciona muy bien en la mayoría de las situaciones.

Sin embargo, he encontrado que para un método de controlador que se llama utilizando una llamada JQuery Ajax, no puedo obtener el contexto actual.

Por ejemplo, en mi método de controlador que devuelve JsonResult tengo este código de prueba;

try { throw new Exception("This is a test"); } catch(Exception e) { Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(e)); }

los

HttpContext.Current

está causando el siguiente error;

''System.Web.HttpContextBase'' no contiene una definición para ''Actual'' y no se pudo encontrar ningún método de extensión ''Actual'' que aceptara un primer argumento de tipo ''System.Web.HttpContextBase'' (¿falta una directiva using o una referencia de ensamblado? ?)

¿Cómo puedo evitar este problema?