2009-10-13 7 views
4

Jusqu'à présent, nous pouvons utiliser Html.EditorFor() pour restituer dynamiquement le modèle approprié pour un type de données, par exemple. string, int ou un type personnalisé, dites 'Address'.Utilisation de EditorFor <> pour afficher une liste déroulante

Maintenant, je veux utiliser EditorFor() pour afficher un champ 'Parent'. Je veux une liste déroulante contenant chaque ligne, et l'utilisateur choisit un parent dans cette liste déroulante.

Le modèle 'Parent' a accès à 'ParentID', mais qu'en est-il des noms et des ID des lignes, pour remplir la zone de liste?

D'où devraient-ils provenir?

Je pourrais mettre la logique d'accès aux données dans le modèle, mais cela viole la séparation des préoccupations.

Je pourrais créer un HtmlHelper qui restitue la liste, mais cela ne casserait-il pas la séparation des soucis, puisque HtmlHelpers devrait seulement faire l'IU, pas l'accès aux données?

Des idées?

Répondre

2

Vous pourriez essayer une approche MVVM, peut-être? Votre ViewModel contiendrait toutes les données dont vous avez besoin pour afficher la liste déroulante, ainsi qu'un modèle «d'édition» pour stocker l'entrée de l'utilisateur sur un POST, qui serait simplement un numéro d'identification dans ce cas, je suppose.

Questions connexes