Penyelesaian Masalah "Model item yang diluluskan ke dalam kamus adalah jenis X tetapi memerlukan y" ralat dalam asp.net mvc
kesilapan ASP.NET MVC biasa ini, "item model yang diluluskan ke dalam kamus adalah jenis 'x' tetapi kamus ini memerlukan item model jenis 'y'," menunjukkan ketidakcocokan jenis antara model yang diharapkan dan pandangan anda dan data model sebenar yang dihantar dari pengawal anda.
Penyebab dan Penyelesaian Root:
Masalah biasanya timbul dari senario ini:
Model Model Controller-View: Model yang dikembalikan tindakan pengawal mesti sesuai dengan arahan dalam pandangan anda. Menggunakan jenis tanpa nama atau koleksi yang tidak betul adalah pelakunya yang kerap. @model
Contoh:
<code class="language-csharp">// Incorrect: Anonymous type returned var model = db.Foos.Select(x => new { ID = x.ID, Name = x.Name }); return View(model); // Error if view expects @model Foo</code>
<code class="language-csharp">var model = db.Foos.ToList(); // Or a single Foo object if needed return View(model);</code>
Konflik model pandangan separa: Apabila menggunakan pandangan separa dengan model pandangan utama yang kompleks, pandangan separa mungkin mewarisi model utama yang tidak betul.
Contoh: Pandangan utama menggunakan , penggunaan pandangan separa @model Foo
. @model Bar
Penyelesaian: secara eksplisit lulus model yang betul ke pandangan separa:
<code class="language-csharp">@Html.Partial("_BarPartial", Model.BarProperty)</code>
Pengisytiharan model susun atur: Jika fail susun atur anda mengisytiharkan model, semua pandangan menggunakan susun atur itu juga harus mengisytiharkan model yang serasi (jenis yang sama atau jenis yang diperoleh).
@Html.Action()
untuk memberikan pandangan separa dengan model berasingan dalam susun atur anda. [ChildActionOnly]
Atas ialah kandungan terperinci Kenapa paparan MVC ASP.NET saya membuang 'item model yang diluluskan ke dalam kamus adalah jenis X tetapi memerlukan y' ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!