Rumah > pembangunan bahagian belakang > C++ > Kenapa item viewdata 'kategoriId' saya menyebabkan 'item viewdata yang mempunyai 'kategoriId' kunci adalah jenis 'sistem.int32' tetapi mestilah jenis 'ienumerable'.' Ralat?

Kenapa item viewdata 'kategoriId' saya menyebabkan 'item viewdata yang mempunyai 'kategoriId' kunci adalah jenis 'sistem.int32' tetapi mestilah jenis 'ienumerable'.' Ralat?

Patricia Arquette
Lepaskan: 2025-02-03 02:56:09
asal
930 orang telah melayarinya

Artikel ini menerangkan bagaimana untuk memperbaiki ralat "item viewData untuk 'kategori' mestilah jenis 'iEnumerable'" dalam ASP.NET MVC. Kesilapan timbul kerana penurunan dropdownlistfor mengharapkan IEnumerable (biasanya koleksi objek SelectListItem) untuk item viewData CategoryID, tetapi ia menerima int sebaliknya. Ini biasanya berlaku apabila data untuk senarai dropdown tidak diisi dengan betul semasa permintaan pos.

Why is my

Masalah teras ialah sifat

dalam model pandangan CategoryList, yang membekalkan data ke dropdown, tidak disegarkan semula dalam kaedah pos tindakan ProjectVM. Penyelesaiannya adalah untuk repopulate Create dalam kaedah pos CategoryList. Create

inilah cara membetulkan kaedah tindakan

: Create

<code class="language-csharp">public ActionResult Create(ProjectVM model)
{
    if (!ModelState.IsValid)
    {
        // Repopulate the CategoryList property
        model.CategoryList = new SelectList(db.Categories, "ID", "Name"); 
        return View(model);
    }
    // ... (Your existing code to save the project) ...
}</code>
Salin selepas log masuk
dengan menambahkan

di dalam blok model.CategoryList = new SelectList(db.Categories, "ID", "Name");, if (!ModelState.IsValid) dengan betul dihuni dengan data dari jadual CategoryList (dengan asumsi Categories adalah konteks pangkalan data anda), menyediakan db yang diperlukan untuk IEnumerable<SelectListItem> pembantu. Ini menghalang ketidakcocokan jenis dan membolehkan penyerahan bentuk yang berjaya. Pembina DropDownListFor mengambil sumber data, medan nilai ("id"), dan medan teks ("nama"). Ini memastikan dropdown memaparkan nama dan nilai kategori yang betul. SelectList

Atas ialah kandungan terperinci Kenapa item viewdata 'kategoriId' saya menyebabkan 'item viewdata yang mempunyai 'kategoriId' kunci adalah jenis 'sistem.int32' tetapi mestilah jenis 'ienumerable'.' Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan