System.Web.HttpContextBase' does not contain a definition for 'Current' MVC 4 with Elmah Logging

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 ?

1 Answer

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.

4

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like