J'apprends MVC pour développer un site Web, et je trouve confus les différences (apparentes?) De la «théorie» et les implémentations courantes répandues. Dans le original et le Martin Fowler's article, le concept MVC semble privilégier une vue «intelligente», qui interagit directement avec le modèle pour récupérer les données à afficher et décide par lui-même de la façon dont les données doivent être présentées. Sur le web, cela devrait être le format de sortie (HTML, JSON, PDF, etc.). D'autre part, la vue dans les cadres actuels comme ASP.NET et Zend semble être un peu plus d'un modèle HTML.Les cadres MVC confondent-ils les vues avec les modèles?
Cela me pose une question: je peux créer une vue pour chaque format, mais alors où devrais-je dans ces cadres de décider quelle vue afficher? Le contrôleur devrait-il décider quelle vue charger? Mais alors, est-ce la responsabilité du contrôleur de connaître le bon format à afficher? Cela semble être contre la théorie.
Quelle est votre expérience lorsque vous utilisez MVC et que vous avez besoin de sortir différents formats?
Eh bien, généralement, l'objet de requête décide. Vous obtenez l'objet de requête dans le contrôleur et en fonction des paramètres, vous passez les objets/variables corrects aux vues. Il est souvent bon d'avoir une seule vue pour afficher beaucoup de pages différentes mais similaires (si le HTML est de 80-90% identique, il n'y a pas de point de vue redondant, il suffit d'utiliser simple/else etc dans les scripts de vue pour décider afficher). C'est ainsi que cela se fait dans la plupart des cadres, que ce soit théoriquement sain, je ne sais pas. –