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

C#asp.net Mvcasp.net Mvc-4

C# 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionneildtView Question on Stackoverflow
Solution 1 - C#DineshView Answer on Stackoverflow