Sur la page principale de mon site, je souhaite afficher plusieurs vues qui reposent sur leurs propres contrôleurs pour la récupération de données. Je ne veux rien récupérer de la DAL dans mon contrôleur Home.Rendu de plusieurs vues à partir de plusieurs contrôleurs sur une seule page
Par exemple, je veux afficher la vue liste top 5 nouvelles, une vue avec citation aléatoire de la base de données, une autre vue avec les utilisateurs Contenu du panier, etc.
Après googler autour, j'ai trouvé la méthode RenderAction
qui est presque parfait, mais il n'est pas disponible en RC1, seulement en Futures, et apparemment, il a quelques problèmes.
Je trouve RenderPartial
aussi bien, mais qui repose sur le contrôleur principal pour transmettre des données à la vue.
précisions supplémentaires:
La principale raison pour laquelle je ne veux pas la logique d'accès aux données dans le contrôleur Home est d'éviter de répéter le code et la logique. Je vais utiliser le top 5 des nouvelles vues dans plusieurs pages/contrôleurs. Je ne veux pas répéter la récupération de données dans chacun d'entre eux. J'ai déjà séparé beaucoup de logique et de validation en couche de gestion. La solution que je suis après est RenderAction ou UserControls comme dans ASP classique. Je sais que je peux les utiliser dans MVC, mais ... quel est le point? Je veux dire, si ce que je demande est trop compliqué ou trop absurde (composants d'interface utilisateur réutilisables), alors MVC n'est certainement pas pour moi, et je le considérerais sérieusement inférieur à ASP.NET classique, parce que cette exigence est vraiment simple.
Dogmatique? J'essaie simplement de ne pas répéter beaucoup de code ... – mitch
Eh bien, il y a une solution de design derrière la vue. Essayez de créer une autre couche entre le contrôleur et DAL, peut-être un BLL. –