1. ホーム
  2. asp.net-mvc

[解決済み】MVC 4 @Scripts "does not exist".

2022-04-13 15:45:42

質問

ASP.NET MVC 4 プロジェクトを作成し、Visual Studio 2012 RC を使用して、Controller と Razor Views を作成しました。 IndexCreate アクションです。

アプリケーションを実行しようと思って Create ビューで、次のエラーが表示されました。

コンパイラーエラーメッセージ。CS0103: 名前 'Scripts' は次の場所に存在しません。 現在のコンテキスト

問題は、Viewの下部に自動的に追加された以下のコードです。

@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}

なぜScriptsは存在しないのですか?

アセンブリ System.Web.Mvc.dll, v4.0.0.0 の基本ウェブページクラスを調べました。

以下のヘルパープロパティが利用できることが確認できます。

  • Ajax
  • Html
  • URL

しかし、Scriptsという名前のものはない。

何か思い当たることはありますか?

EDITです。

私のWeb.configファイルは以下のようなものです(Visual Studioが作成したものから手を加えていない)。

  <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.Routing" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

EDIT #2です。

を使うことをブログで紹介している人がいます。 @Scripts ヘルパーを使用します。

しかし、Visual Studio 2012 RC を新しい Windows 8 にインストールしたところ、次のことができなくなりました。 @Scripts Visual Studio が生成された View に追加しているにもかかわらず、です。

解決策を以下に示します。

最終的にはアップデートで解決したようなので、これをどう閉じていいのかわかりません。私は、新しいプロジェクトを使用して、クリーンインストールを実行したことを再確認しました。しかし、私が作った同じ失敗したプロジェクトは、様々なアップデートと手動での明らかな介入の後、現在問題なく動作しています。すべての考えに感謝しますが、当時は間違いなく問題がありました;)

解決方法は?

ここで重要なのは

 <add namespace="System.Web.Optimization" /> 

を両方のweb.configファイルに追加してください。私のシナリオは、プロジェクトとメイン/ルート web.config の両方で System.Web.Optimization を参照していましたが、@Scripts はまだ正しく動作しませんでした。Views web.config ファイルに名前空間参照を追加して、動作するようにする必要があります。

UPDATEしてください。

MVC 4 のリリース以降、System.Web.Optimization は廃止されました。空のソリューションから始める場合は、次の nuget パッケージをインストールする必要があります。

Install-Package Microsoft.AspNet.Web.Optimization

Web.config ファイルで System.Web.Optimization を参照する必要があることに変わりはありません。詳細については、このトピックを参照してください。

MVC-3から4へ変換されたアプリでSystem.Web.Optimizationへの参照を追加する方法

多くの方のご指摘の通りです。 VSの再起動 は、上記の手順の後に、これを動作させるために必要な場合があります。