Maison > développement back-end > C++ > Pourquoi mon élément 'catégorieid' ViewData provoque un 'élément ViewData qui a la clé' catégorieid 'est de type' System.int32 'mais doit être de type' ienumerable '.' erreur?

Pourquoi mon élément 'catégorieid' ViewData provoque un 'élément ViewData qui a la clé' catégorieid 'est de type' System.int32 'mais doit être de type' ienumerable '.' erreur?

Patricia Arquette
Libérer: 2025-02-03 02:56:09
original
930 Les gens l'ont consulté

Cet article explique comment corriger l'erreur "L'article ViewData pour 'catégorieid' doit être de type 'ienumerable'" dans ASP.NET MVC. L'erreur survient parce qu'une aide DropdownListFor s'attend à un IEnumerable (généralement une collection d'objets SelectListItem) pour l'élément CategoryID ViewData, mais il reçoit à la place un int. Cela se produit généralement lorsque les données de la liste déroulante ne sont pas correctement remplies lors d'une demande de poste.

Why is my

Le problème de base est que la propriété CategoryList dans le modèle de vue ProjectVM, qui fournit des données à la liste déroulante, n'est pas actualisée dans la méthode post-Action de l'action Create. La solution consiste à repeupler CategoryList dans la méthode Create post.

Voici comment corriger la méthode d'action 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>
Copier après la connexion

En ajoutant model.CategoryList = new SelectList(db.Categories, "ID", "Name"); à l'intérieur du bloc if (!ModelState.IsValid), le CategoryList est correctement rempli de données du tableau Categories (en supposant que db est votre contexte de base de données), fournissant le IEnumerable<SelectListItem> nécessaire au DropDownListFor assistant. Cela empêche l'inadéquation de type et permet une soumission de formulaire réussie. Le constructeur SelectList prend la source de données, le champ de valeur ("id") et le champ de texte ("nom"). Cela garantit que la liste déroulante affiche les noms et valeurs de catégorie corrects.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal