J'essaie de charger dynamiquement des vues partielles dans une vue en passant la liste des chemins pour les vues partielles que je veux, puis en appelant RenderPartial sur chacune. Cela semble faire l'affaire. Le problème vient quand j'essaie de passer le modèle à la vue partielle. Comme je les charge dynamiquement, je ne sais pas exactement quel modèle passer pour cette vue partielle particulière. Je ne veux pas remplir tous les objets possibles et j'envisage d'utiliser la réflexion avec une recherche de configuration pour chaque vue partielle afin de charger dynamiquement le modèle. J'envisageais également d'ajouter un ActionFilter qui remplirait automatiquement les bonnes valeurs de modèle pour moi, mais même cette implémentation devrait utiliser Reflection. Est-ce que quelqu'un a d'autres suggestions? Une chose me manque à propos des contrôles utilisateur ASP.NET réguliers que je ne vois pas dans MVC. Les commandes de l'utilisateur ont encapsulé leur propre logique pour la récupération des données alors qu'en MVC, le contrôleur principal doit en être informé. Cela signifie que si je devais utiliser une vue partielle pour un autre contrôleur, ce contrôleur devrait également savoir comment récupérer le modèle pour cette vue partielle. Est-ce que j'ai râté quelque chose? Merci.MVC - Chargement dynamique de vues partielles
Répondre
Si vous voulez pouvoir faire ce que vous décrivez, vous pouvez lire sur Html.RenderAction(). Ceci est utile dans de nombreuses circonstances mais n'est pas "pure" MVC (peut-être pragmatique MVC).
J'ai une situation similaire à celle où j'utilise des vues partielles pour charger différents écrans de recherche (les boutons de soumission de recherche sont les mêmes), juste les champs de formulaire sont différents.
Je le fais de la manière suivante. Dans un contrôleur de classe de base commun, j'ai un paramètre de type générique, que je passe à un objet de modèle de vue (SearchObject est de type objet). J'ai alors une vue fortement typée, qui passe l'objet SearchObject à la vue partielle. La vue partielle est alors fortement typée et sait quoi faire avec le modèle fortement typé.
La création d'une fonction d'assistance dotée de la logique et renvoyant Partials as string peut aboutir à la même chose. Et aura plus de portabilité que les fonctions virtuelles suggérées par RichardOD.
J'ai vu votre code mais je ne comprends pas le flux. vous publieriez donc un petit exemple de code complet. Merci – Thomas