41

次の 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

詳細なコンパイラ出力を表示:

完全なコンパイル ソースを表示:

バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.272

4

7 に答える 7

126

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アセンブリは NuGet に含まれているためMicrosoft.AspNet.Web.Optimization、プロジェクトにインストールされていることを確認してください (インターネット テンプレートを使用して Visual Studio で新しい ASP.NET MVC 4 プロジェクトを作成すると、この NuGet が自動的にプロジェクトに追加されます)。

于 2013-02-02T19:19:05.807 に答える
3

ここで述べたように:

  1. フォルダーを開きます: Users\(ユーザー)\AppData\Local\Microsoft\VisualStudio (バージョン)

  2. フォルダーを削除します: ComponentModelCache

  3. Visual Studio を再起動します (ComponentModelCache が再作成され、問題は解消されます)。

于 2016-05-11T15:51:04.137 に答える
1

ここに答えが見つかりました ここにリンクの説明を入力してください

明らかに、ルート web.config から web.optimization を追加する必要があります。

于 2016-04-20T13:57:39.603 に答える