Lorsque vous avez un objet de domaine qui doit être affiché en tant que contrôle d'interface, comme une liste déroulante, ifwdev a suggéré de créer une méthode d'extension pour ajouter un .ToSelectList().Comment coder une méthode d'extension C# pour transformer un objet Modèle de domaine en objet Interface?
L'objet d'origine est une liste d'objets qui ont des propriétés identiques aux propriétés .Text et .Value de la liste déroulante. Fondamentalement, il s'agit d'une liste d'objets SelectList, mais pas du même nom de classe.
J'imagine que vous pourriez utiliser la réflexion pour transformer l'objet de domaine en objet d'interface. Quelqu'un at-il des suggestions pour le code C# qui pourrait le faire? SelectList est une liste déroulante MVC de SelectListItem.
L'idée est bien sûr de faire quelque chose comme cela dans la vue:
<%= Html.DropDownList("City",
(IEnumerable<SelectListItem>) ViewData["Cities"].ToSelectList())
par réflexion, je veux dire lire les propriétés de l'objet source et les faire correspondre aux propriétés SelectList, retourner une liste de sélection DropDownList appropriée. –