Maison >développement back-end >C++ >Pourquoi ma vue MVC ASP.NET lance-t-elle un 'élément de modèle transmis dans le dictionnaire'?

Pourquoi ma vue MVC ASP.NET lance-t-elle un 'élément de modèle transmis dans le dictionnaire'?

Susan Sarandon
Susan Sarandonoriginal
2025-02-03 01:01:11744parcourir

Why Does My ASP.NET MVC View Throw a

Résolvez l'erreur "élément de modèle transmis au dictionnaire" dans la vue ASP.NET MVC

Lors de la rencontre d'une invite d'erreur, "Le type de modèle transmis au dictionnaire est BAR, mais ce dictionnaire nécessite le type de FOO", cela signifie que le type de modèle attendu dans la vue ne correspond pas au type de modèle qui est transmis.

Raison 1: Le contrôleur transmet le mauvais modèle à la vue

La raison la plus courante est que le contrôleur transmet le mauvais modèle à la vue. Cela se produit lorsque le type de modèle (@Model FOO) n'est pas adapté au type de modèle (@Model FOO) dans la vue.

Pour résoudre ce problème, veuillez convertir explicitement le modèle en bon type dans le contrôleur:

Raison 2: Le modèle de la vue est transmis à certaines vues à certaines vues

<code class="language-csharp">var model = (Foo)db.Foos.Select(x => new { ID = x.ID, Name = x.Name });</code>

Lors de l'utilisation de quelques vues, le modèle par défaut est le modèle de la vue principale. Si certaines vues devraient être des modèles différents, veuillez le spécifier explicitement:

Raison 3: L'énoncé du modèle dans la disposition

<code class="language-csharp">@Html.Partial("_Bar", Model.MyBar)</code>
La mise en page peut déclarer le modèle, et toutes les vues utilisant la mise en page doivent déclarer le même modèle ou dérivé. Si la mise en page déclare différents modèles, vous pouvez utiliser@html.action pour initialiser et retourner une partie de la vue dans la mise en page pour traiter les modèles séparés.

N'oubliez pas que cette erreur ne correspond généralement pas au type de modèle attendu dans la vue. Vous pouvez résoudre efficacement cette erreur en vérifiant soigneusement le code et en trouvant la source de ne pas correspondre.

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!

Déclaration:
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