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