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?