それを使用して新しいモデルを作成するときに、Visual Studioの一部のバージョンが自動生成するビューファイル間に不一致があるようです。新しいVS 2013 Community Editionを使用してこの問題に遭遇し、http: //www.w3schools.com/aspnet/mvc_app.aspのW3Schoolsチュートリアルをウォークスルーしましたが、上記のコメントは、チュートリアルの指示または問題には問題がないことを示していますVSの単一バージョン。
あなたがエラーメッセージを作ることができるというのは本当です離れて行くだけで除去することにより、
@Scripts.Render("~/bundles/jqueryval")
Visual Studioによって自動生成された作成/編集レイアウトの行。
しかし、その解決策は根本的な原因に対処しておらず、チュートリアルのウォークスルーを終了する以上のことを実行できる適切な場所にとどまっていません。実際のアプリケーションの開発のある時点(おそらくかなり早い段階)で、コメントアウトソリューションがアプリから削除するjquery検証コードへのアクセスが必要になります。
VSを使用して新しいモデルを作成する場合、作成、削除、詳細、編集、インデックス作成の5つのビューファイルのセットも作成されます。これらのビューの2つであるCreateとEditは、モデルの基礎となるデータベースレコードのフィールドのデータをユーザーが追加/編集できるようにすることを目的としています。実際のアプリでのこれらのビューの場合、データベースにレコードを保存する前に、jquery検証ライブラリーを使用してある程度のデータ検証を実行することをお勧めします。そのため、VSは次の行を追加します
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
他の2つのビューではなく、これら2つのビューの下部に。自動生成されたコードは、これらのビューで利用できる検証ライブラリを作成しようとしていますが、他のビューでは利用できません。
このエラーが発生するのは、VSが対応する行を共有_Layout.cshtmlファイルに追加しないか、上記の1つの回答を参照して追加しますが、コメント化したままにします。この行は
@RenderSection("scripts", required: false)
ビューの一部にスクリプトセクションがある場合([作成]および[編集]と同様)、レイアウトに埋め込まれたRenderSectionコマンドが必要です。一部のスクリプトにセクションがあり、一部にない場合(削除、詳細、およびインデックスにはない)、RenderSectionコマンドにはrequired: false
パラメーターが必要です。
したがって、チュートリアルのウォークスルーを終了するだけではない場合の最善の解決策は、ステートメントを_Layout.cshtmlに追加して、編集ビューと作成ビューからコードを削除しないことです。
PSここでは、必要なものが「バンドル」にあり、requireステートメントがプロジェクトに存在しないbundlesフォルダーにファイルを含めようとしているように見えるので、少し混乱しています。ただし、デバッグビルドとチュートリアルでは、バンドルされたファイルが一度に1つずつ含まれるため、これは関係ありません。参照:http : //www.asp.net/mvc/overview/performance/bundling-and-minificationここで問題となっているコードは、ページの下の3分の2について簡単に説明されています。