次のMVC4 Razorレイアウトファイルは、Bundle.configで作成されたいくつかのスクリプトとcssバンドルをロードします。
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
<meta charset="utf-8" />
<title>XXX Beta</title>
@Scripts.Render(
"~/bundles/bundle_jquery",
"~/bundles/bundle_modernizr",
"~/bundles/bundle_foundation",
"~/bundles/bundle_jhs")
@Styles.Render(
"~/Content/bundle_foundation",
"~/Content/bundle_jhs")
@RenderSection("pageHeadContent", false)
</head>
<body>
<div id="bodyContainer">
@Html.Partial("Partial/_header")
<div id="contentContainer">
<div id="mainContentContainer">
<div id="sidebarContainer">
@RenderSection("sidebarContent", required: true)
</div>
@RenderBody()
</div>
<div class="clearBoth">
</div>
</div>
@Html.Partial("Partial/_footer")
</div>
</body>
</html>
ページがレンダリングされると、次のエラーが発生します。何らかの理由で、@ Scriptsおよび@Stylesコマンドが認識されません。ファイルに「@Scripts」と入力すると、Intellisenseはコマンドを表示/表示しません。プロジェクトは、Bundle.configで使用されるSystem.Web.Optimizationを参照します。
@Scriptsおよび@Stylesコマンドが認識されない原因は何ですか?
「/」アプリケーションのサーバーエラー。
コンパイルエラー
説明:この要求を処理するために必要なリソースのコンパイル中にエラーが発生しました。次の特定のエラーの詳細を確認し、ソースコードを適切に変更してください。
コンパイラエラーメッセージ:CS0103:名前 'スクリプト'は現在のコンテキストに存在しません
ソースエラー:
行4:行5:XXXベータ行6:@ Scripts.Render(行7: "〜/ bundles/bundle_jquery"、行8: "〜/ bundles/bundle_modernizr"、
ソースファイル:c:\ Users\username\Documents\Visual Studio 2010\Projects\XXX\Solution\xxx.website\Views\Shared_sidebarLayout.cshtml行:6
詳細なコンパイラ出力を表示:
完全なコンパイルソースを表示:
プロジェクトでSystem.Web.Optimization.dll
アセンブリが参照されていること、および<add namespace="System.Web.Optimization"/>
名前空間が~/Views/web.config
ファイル(~/web.config
ファイルではない)に追加されていることを確認してください。
<system.web.webPages.razor>
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
System.Web.Optimization.dll
アセンブリは Microsoft.AspNet.Web.Optimization
NuGetに含まれているため、プロジェクトにインストールされていることを確認してください(Visual Studioで新しいASP.NET MVC 4プロジェクトを作成する場合)インターネットテンプレートを使用すると、このNuGetが自動的にプロジェクトに追加されます)。
(問題の例のように)バンドルを使用している場合、バンドル構成をアプリに追加する必要がある場合があります。
バンドル構成をApp_Startフォルダーに追加します。
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
"~/Scripts/jquery.validate.js",
"~/Scripts/jquery.validate.unobtrusive.js"
));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/YourStyles.css"));
#if DEBUG
BundleTable.EnableOptimizations = false;
#else
BundleTable.EnableOptimizations = true;
#endif
}
}
Global.asax.csに次の行を追加します
BundleConfig.RegisterBundles(BundleTable.Bundles);
プロジェクトには2つのwebconfigファイルがあります...両方とも必要です
<add namespace="System.Web.Optimization"/>
前述のとおり ここ :
フォルダーを開きます:Users \(user)\ AppData\Local\Microsoft\VisualStudio(version)
フォルダーを削除します:ComponentModelCache
visual Studioを再起動します(ComponentModelCacheが再作成され、問題はなくなります)
私の場合、プロジェクトのターゲットフレームワークを4.5から4.5.1に変更する必要がありました。
私はここで答えを見つけました リンクの説明をここに入力してください
ルートweb.configからweb.optimizationを追加する必要があるようです。
1。 System.Web.Optimization dllがプロジェクトの参照内で再確認されていることを確認します。そうでない場合は、NuGet(パッケージマネージャーコンソール)でインストールします。
Install-Package Microsoft.AspNet.Web.Optimization
2。 System.Web.Optimization名前空間を"Views" web.configに追加します。
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Optimization"/>
</namespaces>
</pages>
</system.web.webPages.razor>
。問題が解決しない場合は、Visual Studioを閉じて再度開き、キャッシュを更新してください。