J'ai un IDictionary, maintenant je veux utiliser ces valeurs dans une liste de sélection. Comment puis-je faire cela?IDictionary à SelectList?
Merci.
J'ai un IDictionary, maintenant je veux utiliser ces valeurs dans une liste de sélection. Comment puis-je faire cela?IDictionary à SelectList?
Merci.
Réglez simplement "Value"
et "Key"
pour dataValueField
et dataTextField
. Vous pouvez soit le faire dans votre vue elle-même ou à partir de votre action (n'ont pas testé le code ci-dessous).
var targets = new Dictionary<string, string>(); targets.Add("Key", "Value"); ViewData["MyList"] = new SelectList(targets, "Key", "Value");
Eh bien, IDictionary
hérite de IEnumerable
donc vous devriez être en mesure de passer ce dictionnaire à l'un des constructeurs pour SelectList
.
Vous devez cependant passer la propriété Values au lieu de simplement IDictionary. Si vous passez juste l'IDictionary, vous obtiendrez des paires clé/valeur au lieu des valeurs. –
Veuillez poster le code que vous utilisez afin que nous puissions l'utiliser pour tester. –
@ Meta-Knight Vous avez normalement besoin des touches pour une liste de sélection. Sauf si vous n'utilisez pas de données normalisées ... – ProfK
J'ai compris, merci pour votre aide. –
@David: la déclaration propose: public class Dictionary. Par conséquent, je recommande de changer la clé et les valeurs, et enfin: new SelectList (target, "Key", "Value"); –
@Bolt Thunder: mise à jour. – David