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 ベースのプロバイダーに置き換えます。