La liaison DropDownListFor aide d'un dictionnaire
Je suis de la création et remplissage d'un Dictionnaire et souhaitez lier à la liste déroulante en utilisant DropDownListFor méthode d'assistance.
Comment puis-je carte du dictionnaire key
et value
à déroulante?
Il semble que je devrais être capable de faire quelque chose comme:
@Html.DropDownListFor(o => o.key, o => o.value, MyDictionary);
Il semble que le premier paramètre doit être un LINQ déclaration que les cartes de paire clé/valeur et le deuxième paramètre est le dictionnaire lui-même.
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas lier une liste déroulante dans un dictionnaire. Il ne fait pas de sens. Afin de générer une liste déroulante vous avez besoin de 2 choses: un scalaire propriété de lier la valeur sélectionnée et une collection de lier les options de la liste déroulante. Vous avez seulement la deuxième de ces deux choses, qui est le dictionnaire. Si vous ne pouvez pas utiliser un typage fort helper.
Vous pouvez effectuer les opérations suivantes laideur:
mais bien sûr, la meilleure approche serait d'utiliser un modèle de vue:
qui vous permettraient d'alimenter dans votre contrôleur de l'action:
et enfin dans votre fortement typé vue:
Vous devriez essayer comme ceci:
Dans Le Contrôleur
Dans Les Vues
J'aime votre réponse Darin. Merci, ça m'a aidé à venir avec cette solution. Jusqu'à présent, j'ai seulement essayé avec des chaînes, mais il fonctionne bien. Ci-dessous est juste un exemple simple. J'ai aussi des méthodes d'extension (non montré ici) pour la construction de Modèle d'Affichage des objets de Schéma du Modèle d'objets (pour HttpGets) et pour la construction du Schéma des Objets de Modèle de Modèle d'Affichage des objets (pour HttpPosts).
Modèle De Vue
Méthode d'Extension pour rendre les choses plus facile et plus propre
Contrôleur
Vue