"ASP.global_asax does not exist in the namespace ASP"

I created a RazorFunctions.cshtml file on App_Code

@functions {
    public static string GetActiveClassIf(string controllerName, string actionName = null)
    {
        var routeData = @HttpContext.Current.Request.RequestContext.RouteData;
        string currentController = routeData.Values["controller"].ToString();
        string currentAction = routeData.Values["action"].ToString();
        return controllerName == currentController &&
            (String.IsNullOrEmpty(actionName) || currentAction == actionName) ? "active" : "";
    }
}

and when I compile, it give me 2 errors (compilation get success and site work without problem) but the errors are annoying.

The RazorFunctions.cshtml are as Content (tried compile but doesn't work with cshtml files of course)

Global.asax.cs is :

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        ModelMetadataConfig.RegisterModelMetadata();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
        Database.SetInitializer(new MigrateDatabaseToLatestVersion<ApplicationDbContext, Configuration>());
        //Database.SetInitializer(new DropCreateDatabaseAlways<ApplicationDbContext>());
    }
}

and

<%@ Application Codebehind="Global.asax.cs" Inherits="Bouron.Web.MvcApplication" Language="C#" %>

This is the first time I use the App_Code so I don't know what else to do, all search returns ASP.NET 1-2 results, are out of date where razor doesn't even exist so I'm not sure how can I solve this.

I'm using Visual Studio 2015 (just in case it matters)

I had the same issue.

I manually edited the generated file file.cshtml.72cecc2a.cs (it was at AppData\Local\Temp\Temporary ASP.NET Files\root) and changed ASP.global_asax to System.Web.HttpApplication and the error went away.

This is the generated code:

protected static ASP.global_asax ApplicationInstance {
    get {
        return ((ASP.global_asax)(Context.ApplicationInstance));
    }
}

I changed it to:

protected static System.Web.HttpApplication ApplicationInstance {
    get {
        return ((System.Web.HttpApplication)(Context.ApplicationInstance));
    }
}

I don't know why this is happening though.

I've found that if I have the files in App_Code open in Visual Studio 2015 when I run the build, then I don't get the errors. As soon as I close the files the errors show up again.

After trying a variety of the solutions proposed here, it turns out that simply quitting Visual Studio 2015 and then restarting it was enough to get the Solution/Project to successfully compile once again.

Two things i did to resolve this was to re-target the framework and then changing it back (was using 4.5.1 changed it to 4.5 and back)

After this i had a lot of error with T4MVC which i was also using, i upgraded it to newest version but i could see that in source control that T4MVC was installed targeting framework 4.5 and when you re/install a new nuget package it changes the target framework, so that was changed to 4.5.1

After this everything worked. I didn't test if you only need to do that second part of this answer, but i would try that first.

Comments
  • Did you find a solution? Got the same problem.
  • I had the same issue, manually edited the generated file file.cshtml.72cecc2a.cs and changed ASP.global_asax to System.Web.HttpApplication and the error went away... don't know why it is happening though
  • @OrlandoWilliam can you post that as an answer. because indeed that also fixes the issue for me so I can accept it. Thanks
  • I've given up on trying to prevent the "error" from appearing. I wonder if there's any way to suppress CS0234?
  • For whatever reason I had to also open the file that it was throwing an error in Visual Studio to make it stop showing up in the error list. It's like the intellisense wasn't reconsidering the file until I opened it.
  • I needed to restart VS2015 RTM after installing the package above to get this fixed.
  • This worked for me. But after installing DotNetCompilerPlatform I started receving NuGet error about an invalid Path. If you ran into the same problem here is the solution for that: stackoverflow.com/a/31826795/573208
  • This didn't work for me - I still have to have the helper file open, or I get the error, even after installing the recommended nuget package. Quite annoying.
  • The source cited in the answer was for Visual Studio 2015 RC. I am using VS 2015 Update 1 and seeing the global_asax error but not the Linq error. Regrettably, the NuGet package does not get rid of the global_asax error.
  • this works but after update the file the problems appears again. see my answer for a solution, this is a known issue with visual studio 2015
  • Anyone figure out why this happens? This was the only solution out of all that actually worked for me
  • the opposite is true for me. if the file is open it tells me it can't find system.Web.Mvc, if its closed it finds it.
  • I have 1 cshtml (Content.cshtml) file there but I can't open it inside VS15, don't know why ("The operation could not be completed"). I've rename it to Content.cshtml.old but that causes another problem. In the end I've deleted the App_Code folder and created a new one. Re-opened visual studio and it works now.
  • Simply restarting Visual Studio worked for me as well. I rec'd 7 of these errors on build and after restarting VS the build succeeded. Hm. A happy ending at least, but a lingering "why?" persists.