J'utilise .NET 3.5, MVC.ASP.NET - Alias noms de liste déroulante sur back end
Je souhaite utiliser un ensemble d'alias de chaîne pour représenter les valeurs de base de données. c'est-à-dire lorsqu'un utilisateur sélectionne une option dans une liste déroulante, il définit en fait la valeur 0, 1, 2, etc. dans la table, plutôt que le texte affiché dans la liste déroulante elle-même.
par exemple. Je fais:
IdName[] Thing = new[] {
new IdName { Id = 0, Name = "No Selection" },
new IdName { Id = 1, Name = "Thing A9" },
new IdName { Id = 2, Name = "Thing C12" },
new IdName { Id = 3, Name = "Thing F4" }
};
MyDropDownList = new SelectList(Things, "Id", "Name",0);
et dans la vue:
<%= Html.DropDownList("MyDropDownList")%>
Maintenant, cela fonctionne très bien. Ce que je n'arrive pas à faire, c'est afficher la valeur du champ dans une vue 'détails' et montrer "Thing C12" comme texte au lieu de "2".
Aussi, est-ce la meilleure façon de procéder? Je ne veux pas utiliser la chaîne dans la base de données au cas où je modifierais le texte d'une entrée (par exemple, changer le nom de "Thing F4" en "Thing F5".) Je suis totalement ouvert à d'autres idées.
Merci!
vous avez dit: montrant "Thing C12" comme le texte au lieu de "2" où? –
Ce que je veux dire, quand un utilisateur sélectionne "Thing C12" de la liste déroulante, il stocke effectivement la valeur dans la base de données en tant que 2 (en raison de la façon dont j'ai appelé SelectList()) – user101306
ok je reçois le point –