2009-04-07 5 views
1

J'ai trois liste déroulante chacune dépendant de la précédente.Créer trois listes déroulantes en cascade avec Ajax dans MVC

Comment est-il possible d'utiliser les services Web MicrosoftAjax &? Je veux également la valeur sélectionnée dans la vue Éditer. J'ai vu tip41 de stephen walther.

Mais j'ai erreur sur chaque vue-à-dire

<%= Html.DropDownList("--Select Make--", "Makes") %> 

que CS1061: « System.Web.Mvc.HtmlHelper » ne contient pas de définition pour « DropDownList » et aucune méthode d'extension « DropDownList » accepter une première argument de type 'System.Web.Mvc.HtmlHelper' peut être trouvé (manque-t-il une directive using ou une référence d'assembly?)

Alors, quelle serait la raison? J'utilise MVC 1.0.

+0

même scénario mais avec jQuery peut être fait en utilisant AjaxDropdown d'ici: http://awesome.codeplex.com – Omu

Répondre

1

Je pense que vous avez l'étiquette de nom/option retournée. Vous pouvez également essayer d'utiliser la signature avec le paramètre value. Je ne suis pas sûr pourquoi vous aviez un problème de compilation, cependant, car il existe une version de l'extension qui prend deux paramètres de chaîne. Docs peut être trouvé à MSDN.

<%= Html.DropDownList("Makes", 
         "--Select Make--") %> 

OU

<%= Html.DropDownList("Makes", 
         (IEnumerable<SelectListItem>)ViewData["Makes"], 
         "--Select Make--") %> 

Pour en cascade menus déroulants, vous pouvez utiliser à la place jQuery et obtenir JSON paires clé-valeur pour le menu suivant en fonction de la sélection dans la première. Ajoutez un gestionnaire onChange aux sélections et faites un AJAX get/post à une action dans votre contrôleur pour obtenir les nouvelles valeurs. Je construis une liste de paires de valeurs clés et les renvoie dans un JsonResult. Dans le gestionnaire de succès de la requête ajax, je prends ce résultat et remplace le contenu de la sélection appropriée par de nouvelles options en utilisant le JSON retourné.

Questions connexes