「ASP.global_asax は名前空間 ASP に存在しません」質問する

「ASP.global_asax は名前空間 ASP に存在しません」質問する

App_CodeにRazorFunctions.cshtmlファイルを作成しました

@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" : "";
    }
}

コンパイルすると、2 つのエラーが発生します (コンパイルは成功し、サイトは問題なく動作します) が、エラーは煩わしいものです。

RazorFunctions.cshtml はコンテンツです (コンパイルを試みましたが、もちろん cshtml ファイルでは動作しません)

Global.asax.cs は次のとおりです:

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>());
    }
}

そして

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

App_Code を使用するのは今回が初めてなので、他に何をすればよいかわかりません。すべての検索で ASP.NET 1-2 の結果が返されますが、Razor が存在しない古いものなので、どうすれば解決できるかわかりません。

私は Visual Studio 2015 を使用しています (念のため)

ベストアンサー1

さらに調査したところ、これは既知の問題であることがわかりました。

ソース:https://support.microsoft.com/ja-jp/kb/3025133 より

ASP.NET と Web 開発

  • Web フォーム 4.5 WAP を作成し、Web フォーム ページを開くと、エラー リスト ウィンドウに次のエラーが表示されます。

  • プロジェクトは問題なく実行されます。 エラー CS0234 型または名前空間名 'global_asax' が名前空間 'ASP' に存在しません (アセンブリ参照が不足していますか?) エラー CS0234 型または名前空間名 'Linq' が名前空間 'System' に存在しません (アセンブリ参照が不足していますか?) Visual Studio 2015 RC で C# および VB の新しい言語機能を使用すると仮定します。Web フォーム ページまたは Razor ビューで C# または VB を使用すると、ランタイム エラーが発生します。

この問題を回避するには、Microsoft.CodeDom.Providers.DotNetCompilerPlatform NuGet パッケージをインストールします。このパッケージは、ASP.NET のインボックス CodeDom プロバイダーを Roslyn ベースのプロバイダーに置き換えます。

おすすめ記事