2010-07-23 6 views
0

Je sais comment créer des pages maîtres imbriquées dans des formulaires Web, mais est-ce également possible dans MVC2? Je sais comment le faire avec le balisage seulement si. Je voudrais le définir à partir du code en fonction d'un critère. Est-il possible avec du code dans le contrôleur de définir la page maître imbriquée et la page maître?Pages maîtres imbriquées dans ASP.NET MVC 2

+1

Duplicata de http://stackoverflow.com/questions/947134/are-there-nested-master-pages-in-asp-net-mvc – Ahmad

+1

Bit dur, c'est une question valide. SO n'est pas un forum où les affiches sont insultées pour ne pas tomber dans la ligne. @Nyla. Il y a une mine d'informations sur l'imbrication des pages maîtres dans MVC 2. Quelles sont vos exigences qui rendent les choses différentes pour vous? –

+0

Merci David. Je cherche comment définir une page maître imbriquée à partir de mon contrôleur. –

Répondre

0

Eh bien, il n'y a aucun moyen de le faire dans le contrôleur, autant que je sache. Cependant, qu'est-ce qui vous empêche de transmettre une variable ViewState et de faire une requête à votre vue pour déterminer quelle devrait être votre page maître?

Quelque chose qui pourrait vous aider: templated partial view

0

La page enfant ressemblera à une page maître régulière des enfants.

La page de vue héritera de la page enfant. Place 'Inherits = "System.Web.Mvc.ViewMasterPage"' dans la ligne supérieure et pointe le fichier MasterPage vers la page maître parent. Les espaces réservés au contenu seront chaînés: la page maître supérieure aura des sections ContentPlaceHolder avec un ID, et la page maître subordonnée aura une section Contenu avec un ContentPlaceHolderID défini sur l'ID du ContentPlaceHolder supérieur dans la page parent . La clé est que le moteur de vue remplacera le texte le plus interne dans l'espace réservé de niveau supérieur suivant jusqu'à ce que tous les espaces réservés soient remplis de contenu html.

Je prépare l'exemple d'application MVC Music Store avec cette méthode et cela fonctionne très bien pour moi.

Ceci permet au programmeur de suivre la règle Ne pas se répéter et de ne pas répéter le code d'une page maître à une autre. Vous pouvez définir une page maître de niveau supérieur avec navigation de site et mise en forme de base commune à toutes les pages, puis utiliser une page maître enfant lorsqu'il existe des différences de rendu de page propres à un ensemble de vues spécifique rendu par un contrôleur spécifique.

Je sais que c'est un ancien article, mais le concept mérite d'être commenté même aujourd'hui. J'utilise MVC2 parce que c'est ce qui est actuellement autorisé sur mon ordinateur au travail.

Questions connexes