2017-01-15 8 views
0

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

+1

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 –

+0

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) –

+1

dans l'action du contrôleur de cette vue, vous devez écrire le code pour définir le 'ViewBag.ProjectName' sera également –

Répondre

0

Je résolu mon problème. J'ai vécu de nombreux blocages de PC lors d'un développement antérieur sur le projet. J'ai décidé de refaire le projet à partir de zéro et ensuite repositionné mes formulaires et contrôleurs en collant mon code dans les nouvelles que j'ai créées (permettant à de nouveaux échafaudages de se produire) et tout va bien.

Merci à tous ceux qui ont répondu.