Tampaknya ada ketidakcocokan antara file Tampilan yang dibuat secara otomatis oleh beberapa versi Visual Studio untuk Anda saat Anda menggunakannya untuk membuat Model baru. Saya mengalami masalah ini menggunakan VS 2013 Community Edition baru dan berjalan melalui tutorial W3Schools di http://www.w3schools.com/aspnet/mvc_app.asp tetapi komentar di atas menunjukkan bahwa itu bukan masalah dengan petunjuk tutorial atau dengan versi tunggal VS.
Memang benar bahwa Anda dapat membuat pesan kesalahan pergi dengan hanya menghapus
@Scripts.Render("~/bundles/jqueryval")
baris dari tata letak buat / edit yang dibuat secara otomatis oleh Visual Studio.
Tetapi solusi itu tidak mengatasi akar masalah atau membuat Anda berada di tempat yang baik untuk melakukan lebih dari sekadar menyelesaikan tutorial. Pada titik tertentu (mungkin cukup awal) dalam pengembangan aplikasi nyata, Anda akan menginginkan akses ke kode validasi jquery yang dihapus oleh solusi komentar dari aplikasi Anda.
Jika Anda menggunakan VS untuk membuat model baru untuk Anda, itu juga membuat satu set lima file View: Buat, Hapus, Detail, Edit, dan Indeks. Dua dari tampilan ini, Buat dan Edit dimaksudkan untuk memungkinkan pengguna menambahkan / mengedit data untuk bidang dalam catatan database yang mendasari model. Untuk tampilan tersebut dalam aplikasi nyata, Anda mungkin ingin melakukan sejumlah validasi data menggunakan pustaka validasi jquery sebelum Anda menyimpan rekaman di db. Itulah mengapa VS menambahkan baris berikut
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
ke bagian bawah dari dua tampilan tersebut dan bukan yang lainnya. Kode yang dibuat secara otomatis mencoba membuat pustaka validasi tersedia untuk tampilan tersebut, tetapi tidak untuk yang lain.
Kesalahan terjadi karena VS tidak menambahkan baris terkait ke file _Layout.cshtml bersama atau, lihat satu jawaban di atas, menambahkannya tetapi membiarkannya dikomentari. Garis ini
@RenderSection("scripts", required: false)
Jika beberapa tampilan Anda memiliki bagian skrip (seperti yang dilakukan Buat dan Edit), harus ada perintah RenderSection yang disematkan di tata letak. Jika beberapa skrip memiliki bagian dan beberapa tidak (seperti Hapus, Detail, dan Indeks tidak), perintah RenderSection harus memiliki required: falseparameter.
Jadi solusi terbaik, jika Anda ingin melakukan sesuatu yang lebih dari sekadar menyelesaikan tutorial, adalah menambahkan pernyataan ke _Layout.cshtml bukan menghapus kode dari tampilan Edit dan Buat.
PS Ini sedikit membingungkan, di sini, bahwa apa yang diperlukan ada dalam 'bundel' dan pernyataan yang dibutuhkan sepertinya mencoba untuk memasukkan file dalam folder bundel yang tidak ada dalam proyek Anda. Namun, untuk build debug dan tutorial, itu tidak relevan karena file yang dibundel disertakan satu per satu. Lihat: http://www.asp.net/mvc/overview/performance/bundling-and-minification Kode yang dipermasalahkan di sini disebutkan secara singkat sekitar dua pertiga di bagian bawah halaman.