Je réalise qu'il s'agit d'une question fréquemment posée mais aucune des réponses trouvées ne semble corrigeant mon problème.Réutilisation Erreur d'action - Il n'y a pas d'élément ViewData de type 'IEnumerable <SelectListItem>' avec la clé 'projectName'
J'ai une action dans mon contrôleur qui remplit un menu déroulant en utilisant les informations d'une base de données. Tout fonctionne bien jusqu'à ce que j'essaie de réutiliser le menu déroulant dans une autre vue.
Contrôleur
public ActionResult ImportAddresses1([Bind(Include = "ProjectID, ProjectName")] ProjectMaster projectName)
{
ViewBag.ProjectName = new SelectList(db.ProjectMaster, "ProjectID", "ProjectName");
return View();
}
Voir
@Html.DropDownList("ProjectName", null, "-- Please select a project --", htmlAttributes: new { id = "projectselect", title = "ProjectName", @class = "form-control", })
Encore une fois, il fonctionne très bien dans une vue, mais pas lorsque je tente d'utiliser une autre vue ITIN.
Qu'est-ce qui me manque?
L'objectif est simplement de réutiliser cette liste déroulante dans une autre vue.
Drop down needed to repeat in several views
peut vous montrer l'action du contrôleur et son code de vue où il ne fonctionne pas, le code ci-dessus ne suffit pas de trouver le problème –
Ma pensée originale était que je ne pouvais réutiliser le même code: @ Html.DropDownList ("ProjectName ", null," - Veuillez sélectionner un projet - ", htmlAttributes: nouveau {id =" projectselect ", title =" NomProjet ", @class =" formulaire-contrôle ",}) dans ma nouvelle vue comme je il suffit simplement d'avoir la même liste déroulante dans une autre vue faisant le même appel à l'action du contrôleur ci-dessus. par ex. Voir 1 (celui-ci fonctionne) Action appelée "ImportAddresses1" Voir 2 (ce n'est pas) –
dans l'action du contrôleur de cette vue, vous devez écrire le code pour définir le 'ViewBag.ProjectName' sera également –