Saya menambahkan halaman cshtml dalam sebuah proyek. Ketika saya mencoba untuk menambahkan deklarasi berikut, saya mendapatkan error: "Nama 'model' tidak ada dalam konteks saat ini".
@model xyz.abc.SomeClass
Saya memeriksa referensi, semuanya ada di tempatnya. Saya menambahkan web.config di folder view, tapi itu tidak memperbaikinya.
Apakah ada yang saya lewatkan?
asp.net-mvc-3
razor
pengguna602737
sumber
sumber
Jawaban:
Pembaruan: Jika Anda menggunakan versi MVC yang lebih baru, proses yang sama berlaku, pastikan untuk menggunakan nomor versi yang benar di baris web.config
<host>
.Nah, saya menemukan diri saya mengalami hal yang sama dengan Anda, dan setelah sedikit penelitian lebih lanjut, saya menemukan apa masalahnya!
Anda perlu menyertakan MVC3 web.config default untuk folder Tampilan. MVC3 memiliki dua: satu di root untuk aplikasi Anda, dan satu lagi untuk folder views. Ini memiliki bagian untuk ruang nama yang disertakan. Pastikan milik Anda terlihat seperti ini:
Saya sarankan Anda membuat proyek MVC3 baru, lalu salin web.config yang dibuat untuk Anda ke dalam folder views.
Penting Setelah Anda selesai melakukannya, Anda perlu menutup file dan membukanya kembali. Voila! Intellisense!
sumber
MAIN
file web.config Anda<add key="webpages:Version" value="3.0.0.0" />
Saya mengalami masalah yang sama ketika saya membuat area baru untuk mengatur halaman saya. Struktur saya terlihat seperti:
WebProject
Tampilan yang dibuat di folder Tampilan di bawah Proyek Web bekerja dengan baik, tetapi tampilan yang dibuat di bawah NewArea melontarkan kesalahan berikut:
Untuk memperbaiki ini saya menyalin web.config di folder Tampilan di bawah WebProject ke folder Tampilan di NewArea. Lihat di bawah.
WebProject
Saya mengalami ini karena saya membuat area baru ini secara manual menggunakan Add -> New Folder untuk menambahkan folder. Saya harus mengklik kanan proyek dan memilih Add -> Area. Kemudian Visual Studio akan mengurus pengaturan area dengan benar.
sumber
Views/Web.config
mereferensikanSystem.Web.Mvc.MvcWebRazorHostFactory
versi 5.0.0.0, dan saya memiliki referensi Area v4.0 pihak ketiga dan dengan pandangan yang bekerja sama. Saya mengaturViews/Web.config
kembali ke v4.0 dan semuanya bekerja.Jika pandangan Anda berada dalam rakitan perpustakaan kelas, yang berguna untuk penggunaan kembali pandangan bersama di antara proyek, maka hanya melakukan apa yang disarankan Adam mungkin tidak cukup. Saya masih memiliki masalah bahkan dengan itu.
Coba ini di web.config Anda di root proyek Anda:
Dan ini di web.config di folder views Anda:
Ini berhasil untuk saya. Saya sekarang memiliki kecerdasan dan tidak ada kesalahan kompilasi pada pandangan saya dalam proyek non-MVC yang kemudian dapat saya rujuk dari beberapa situs web MVC.
sumber
Saya mengalami masalah ini ketika saya secara tidak sengaja memiliki salinan file tampilan (About.cshtml) untuk rute / tentang di direktori root. (Bukan folder tampilan) Setelah saya memindahkan file dari root, masalahnya hilang.
sumber
Memiliki masalah serupa saat menggunakan VS2012 dan VS2013.
Menambahkan baris berikut ke <appSettings> di web.config utama berhasil:
Jika garis itu sudah ada tetapi mengatakan 2.0.0.0, mengubahnya menjadi 3.0.0.0 bekerja.
sumber
Pembaruan: 5/5/2015 Untuk proyek MVC 5 Anda, Anda perlu mengatur Versi ke 5.0.0.0 di /views/web.config Anda
sumber
Saat Anda mendeklarasikan model di bagian atas tampilan menggunakan kode seperti ini:
Anda perlu memanfaatkan referensi Anda di bawah ini, misalnya:
Saya percaya web.config yang hilang di folder Views akan menjadi penyebab utama ini, tetapi jika itu sudah diperbaiki dan masalah masih berlanjut, periksa apakah Anda menggunakan Model , bukan model untuk merujuknya di sumber.
sumber
Saya mengalami masalah ini juga. Keadaan saya sedikit berbeda.
Salah satu folder tampilan saya tidak sengaja dipindahkan ke direktori root proyek saya. Ini mengarah pada
project_root/SignUp/ViewName
pencocokan rute sebelumnyaproject_root/Views/SignUp/ViewName
. Ini menyebabkan@model
kesalahan.Setelah memindahkan tampilan kembali ke lokasi yang sesuai, entah bagaimana direktori tersebut dibuat ulang di root proyek. Kali ini kosong.
/SignUp/ViewName
bekerja, tapi/SignUp/
membuat403 - Forbidden: Access is denied.
kesalahan. The seluruh folder harus dikeluarkan dari akar proyek.Saya harap ini membantu seseorang. Saya menghabiskan waktu berjam-jam untuk mempercayai bahwa masalah tersebut disebabkan oleh peningkatan terbaru kami dari MVC 3 ke MVC 4. Sekadar catatan: Masalah peningkatan seharusnya hanya terjadi antara MVC 2 dan MVC 3. Jika Anda melihat masalah ini di versi yang lebih baru, mungkin itu bukan karena meningkatkan.
sumber
Butuh waktu lama bagi saya untuk menyelesaikan masalah ini, tetapi akhirnya saya berharap saya menyelesaikannya di MVC, yang serupa:
Saya telah menginstal ulang ASP.NET 4.5 ( http://www.asp.net/downloads )
Saya telah mengikuti tutorial peningkatan versi di http://www.asp.net/whitepapers/mvc4-release-notes
TAPI paragraf yang disebutkan ini salah bagi saya
Karena saya memiliki Razor di System.Web.Razor , jadi saya mengubah namespace pisau cukur menjadi System.Web.Razor.
Tambahkan ini ke web.config Anda
Saya telah menambahkan referensi perakitan untuk semua majelis di atas
Temukan elemen ProjectTypeGuids dan ganti {E53F8FEA-EAE0-44A6-8774-FFD645390401} dengan {E3E379DF-F4C6-4180-9B81-6769533ABE47}.
Itu semuanya.
sumber
<add key="webpages:Version" value="2.0.0.0" />
adalah faktor pendorong, pengaturan lain tidak diperlukan.3.0.0.0
tapi ya ini sangat penting!Ini adalah kesalahan yang mengerikan tetapi:
Pastikan Anda memiliki file Web.config di View at Remote . Mungkin Anda melewatkan untuk mengunggahnya dengan filter program Ftp Anda.
sumber
Saya kehilangan web.config di bawah Area / MyArea / Views / web.config. Setelah ditambahkan itu berfungsi dengan baik. Ini dengan MVC 5 dan .NET4.5
sumber
Ada juga alasan lain. Dalam kasus saya, saya telah menyalin file index.cshtml ke folder root web (di luar folder Views) sebagai cadangan dari server jarak jauh.
Jadi, saya terus mengubah /views/web.config saya, terus mengubah /views/home/index.cshtml saya dan kesalahan terus terjadi ... sampai menemukan /index.cshtml di luar folder views, menghapusnya dan tentu saja, itu semuanya kembali normal!
sumber
Saya mengalami masalah yang sama, tetapi dalam kasus saya, satu-satunya hal yang telah berubah adalah saya telah menghapus Visual Studio 2012 dan menginstal Visual Studio 2013. Saya membuka solusi kami, tetapi saya terus mendapatkan
The name 'model' does not exist in current context
kesalahan yang sama di setiap tampilan Razor.Rekan kerja saya menyarankan untuk memeriksa pembaruan untuk VS2013. Setelah saya menginstal Pembaruan VS2013 1 , saya berhenti mendapatkan kesalahan ini.
sumber
Periksa file konfigurasi Anda pada direktori views. di tambahkan kunci untuk MVC 4/5
sumber
Menginstal ulang nuget menyelesaikannya untuk saya
PM> Instal-Paket Microsoft.AspNet.Razor -Versi 3.2.3
sumber
Bagi saya inilah masalahnya. Seluruh blok ini hilang dari bagian itu.
sumber
Saya mendapat masalah yang sama setelah memperbarui paket. Saya melakukan semua hal yang Anda tulis di atas dalam topik ini, tetapi warna merah yang mendasari kata kunci model belum hilang. Kemudian, solusi yang ditemukan: baru saja menghapus folder 'paket' dari direktori proyek saya dan membangunnya kembali, sementara itu mengizinkan NuGet untuk memulihkan paket yang hilang. Diperbarui, dan selesai!
sumber
Periksa file web.config Anda harus ada di file yang diterbitkan
sumber
Saya menghadapi masalah yang sama dan kemudian saya menemukan solusi. Solusinya adalah:
File .suo adalah file tersembunyi di folder yang sama dengan file solusi .svn . Semoga berhasil!
sumber