System.Web.HttpContextBase' does not contain a definition for 'Current' MVC 4 with Elmah Logging
C#asp.net Mvcasp.net Mvc-4C# Problem Overview
I have a C# ASP.NET MVC 4 project, which is using Elmah for catching any unhandled exceptions. This works great in most situations.
However I've found that for a controller method that is called using a JQuery Ajax call, I can't get the current Context.
For example in my controller method that returns the JsonResult I have this test code;
try
{
throw new Exception("This is a test");
}
catch(Exception e)
{
Elmah.ErrorLog.GetDefault(HttpContext.Current).Log(new Elmah.Error(e));
}
The
> HttpContext.Current
is causing the following error;
> 'System.Web.HttpContextBase' does not contain a definition for > 'Current' and no extension method 'Current' accepting a first argument > of type 'System.Web.HttpContextBase' could be found (are you missing a > using directive or an assembly reference?)
How can I get around this problem ?
C# Solutions
Solution 1 - C#
To get a reference to HttpContext.Current you need replace
HttpContext.Current
with
System.Web.HttpContext.Current
This is because Controller class defines a property named HttpContext that is defined as
public HttpContextBase HttpContext { get; }
HttpContext on Controller class returns HttpContextBase which does not have a Current property.
Hence you need to properly resolve the namespace here.