Quando si dispone di un oggetto dominio che deve essere visualizzato come controllo di interfaccia, come un elenco a discesa, ifwdev suggerisce di creare un metodo di estensione per aggiungere un. ToSelectList().Come codificare un metodo di estensione C# per trasformare un oggetto modello di dominio in un oggetto di interfaccia?
L'oggetto di origine è un elenco di oggetti che hanno proprietà identiche alle proprietà .Text e .Value dell'elenco a discesa. Fondamentalmente, è un elenco di oggetti SelectList, ma non dello stesso nome di classe.
Immagino che si possa usare il reflection per trasformare l'oggetto dominio in un oggetto di interfaccia. Qualcuno ha qualche suggerimento per il codice C# che potrebbe fare questo? SelectList è un elenco a discesa MVC di SelectListItem.
L'idea, naturalmente, è quello di fare qualcosa di simile nella vista:
<%= Html.DropDownList("City",
(IEnumerable<SelectListItem>) ViewData["Cities"].ToSelectList())
per riflessione, intendo leggere le proprietà dell'oggetto di origine e abbinarli alle proprietà SelectList, restituendo una corretta lista di selezione DropDownList. –