Penyelesaian Masalah "Jenis Misce Mismatch" Kesalahan dalam pandangan ASP.NET MVC
Artikel ini menangani kesilapan ASP.NET MVC biasa: "Item model yang diluluskan ke dalam kamus adalah jenis ..., tetapi kamus ini memerlukan item model jenis ...". Kesalahan ini timbul dari ketidakcocokan di antara jenis model pengawal anda yang dihantar ke pandangan dan jenis pandangan yang diharapkan.
Punca umum ralat
Beberapa situasi boleh membawa kepada kesilapan ini:
- Percanggahan model pengawal-ke-pandangan:
menggunakan jenis tanpa nama sebagai model. -
Lulus pelbagai model di mana pandangan hanya mengharapkan satu. -
- Isu Model View-to-Parttial-View:
Spesifikasi model yang salah untuk pandangan separa, terutamanya apabila susun atur mentakrifkan jenis model. -
lulus - ke pandangan separa tanpa jelas menentukan model.
null
- Pengisytiharan model dalam susun atur:
pandangan yang mewarisi dari susun atur dengan perisytiharan model mesti menggunakan jenis model yang sama atau yang diperoleh. -
Penyelesaian kepada masalah "Model Jenis Mismatch"
Penyelesaian teras adalah untuk memastikan jenis model yang konsisten antara pengawal dan pandangan anda.
- Pengisytiharan Model Double-Check: Sahkan dengan teliti bahawa jenis model dalam kaedah tindakan pengawal anda dengan tepat sepadan dengan pengisytiharan dalam pandangan anda.
@model
Model paparan separa yang betul lulus: - Apabila menggunakan , berikan objek model yang betul sebagai argumen kepada pandangan separa.
@Html.Partial(...)
Elakkan pengisytiharan model susun atur (amalan terbaik): - Jika susun atur anda memerlukan data model tambahan, pertimbangkan untuk menggunakan untuk memanggil kaedah . Kaedah ini harus memulakan model yang diperlukan dan mengembalikan pandangan separa yang mengandungi data tersebut. Ini menjadikan susun atur anda bersih dan menghalang konflik model.
@Html.Action(...)
[ChildActionOnly]
Dengan teliti mengkaji bidang -bidang ini, anda boleh mendiagnosis dan menyelesaikan "kesilapan jenis model" dengan berkesan dalam aplikasi ASP.NET MVC anda.
Atas ialah kandungan terperinci Kenapa paparan MVC ASP.NET saya membuang kesilapan 'Model Jenis Mismatch'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!