2011-06-03 4 views
0

J'ai une table dans la base de données appelée Person et il a différents champs comme id (Guid), prénom et nom. Je les extrait de la base de données en utilisant le code suivantmvc-3 dropdown binding-rasoir

Il existe une méthode appelée GetAll, qui renvoie les éléments de liste.

Contrôleur:

  ClassService p= new ClassService(); 
      ViewData["Id"]= new SelectList(p.GetAll(),"id","Forename"); 

En Vue:

   @Html.DropDownList("Id_0",((SelectList)ViewData["Id"]).Items,"none") 

Il se plaint qu'il est acompilation error.What est mal là-dedans? et si elle compile, est-elle chargée dans la liste déroulante?

Quelqu'un peut-il dire est-ce correct de le faire ou est-ce que je manque quelque chose.

Merci

+0

Que dit l'erreur de compilation? –

+0

ne contient pas de définition pour 'DropDownList' et la meilleure méthode d'extension de surcharge 'System.Web.Mvc.Html.SelectExtensions.DropDownList (System.Web.Mvc.HtmlHelper, string, System.Collections.Generic.IEnumerable , object) 'a des arguments invalides –

+0

Essayez de supprimer ".Items" du paramètre SelectList. je – Tridus

Répondre

0

Html.DropDownList() prend le nom que vous voulez que la sélection à appeler puis un IEnumerable de SelectListItem(). Supprimez le deuxième paramètre .Item et cela devrait fonctionner. Le troisième paramètre est la valeur de l'élément sélectionné. Donc, je ne suis pas sûr de ce que "rien" ne fera que de ne rien sélectionner dans la liste déroulante.

Aussi, je ne sais pas comment vous allez gérer la liaison à un modèle lorsque vous postez le formulaire. N'oubliez pas d'avoir un entier appelé Id_0 en tant que paramètre de l'action menthod [HttpPost].