sistem penyelesaian ".int32 "vs" iEnumerable "ralat dalam senarai dropdown
Mengemukakan borang dengan senarai dropdown kadang -kadang boleh mengakibatkan ralat yang menunjukkan ketidakcocokan jenis: item mengharapkan jenis ViewData
(untuk pilihan jatuh turun), tetapi menerima IEnumerable
sebaliknya. System.Int32
punca akar: Senarai kategori null
Ini biasanya berlaku kerana sifat dalam model pandangan anda (mis., CategoryList
apabila borang dikemukakan. ProjectVM
bergantung pada harta ini untuk mengisi senarai dropdown. null
ViewData
Penyelesaiannya adalah untuk secara jelas repopulate harta
dalam kaedah tindakan pos pengawal anda sebelum CategoryList
mengembalikan pandangan. Ini memastikan data yang betul boleh didapati di . IEnumerable
ViewData
inilah cara mengubah suai kaedah pos anda:
Menambah baris ini mencipta semula
<code class="language-csharp">public ActionResult Create(ProjectVM model) { if (!ModelState.IsValid) { // Repopulate the CategoryList model.CategoryList = new SelectList(db.Categories, "ID", "Name"); return View(model); } // ... (Your existing code to save the model and redirect) ... }</code>
. Ini, seterusnya, menyediakan data SelectList
yang diperlukan kepada penolong model.CategoryList
dalam pandangan anda. IEnumerable
DropDownListFor()
Kaedah penolong
(dan) cuba mencari data DropDownListFor()
yang sesuai. Jika ia tidak menerima DropDownList()
secara langsung, ia mencari data dalam SelectList
menggunakan nama harta (seperti 'kategoriId'). Jika item SelectList
tidak boleh dikurangkan kepada ViewData
, kesilapan jenis ketidakcocokan berlaku. Dengan menetapkan secara jelas ViewData
dalam kaedah pos, kami memintas isu ini. IEnumerable
Atas ialah kandungan terperinci Kenapa senarai dropdown saya membuang ralat 'System.Int32' vs 'IEnumerable'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!