2017-10-18 16 views
0

J'ai une vue simple dropdownlist en rasoir,Existe-t-il un moyen simple d'afficher à la fois les champs de valeur et de texte dans une liste déroulante dans MVC (rasoir)?

@Html.DropDownList("Client_Id", null, htmlAttributes: new { @class = "form-control" }) 

et pour le contrôleur I ont la ViewBag suivante,

ViewBag.Client_Id = new SelectList(db.ClientMetadatas, "Client_Id", "Name"); 

Maintenant, est-il possible d'avoir un moyen simple, pour afficher le client_id le long avec le nom dans la liste déroulante?

Répondre

0

Je suggère de créer une classe anonyme en utilisant la méthode d'extension Select.

ViewBag.Client_Id = new SelectList(db.ClientMetadatas.Select(x => new { ClientId = x.Client_Id, CombinedProperty = x.Client_Id.ToString() + " " + x.Name }).ToList(), "ClientId", "CombinedProperty"); 

S'il vous plaît laissez-moi savoir si cela a été en mesure de vous aider!

+0

Merci ... cela fonctionne, mais je demandais en fait s'il y avait une surcharge de la méthode dropdownlist ou de toute méthode de variation, pour afficher directement le texte et la valeur .... – Rom

+0

Non, il n'y en a pas. Je suis confus par votre question. Une liste déroulante a une valeur à soumettre au serveur et un texte correspondant à la valeur. Donc, si vous voulez afficher à la fois la valeur et le texte à l'utilisateur, alors vous devez le faire dans le paramètre de texte. Il n'y aurait pas de méthode pour accepter 2 valeurs de texte à afficher à l'utilisateur. –

+0

Techniquement, ce que je vous ai montré est d'utiliser la seule option de la surcharge dropdownlist pour afficher ce que vous voulez afficher –