49 votes

Modifier la disposition (page maître) de la vue dans ASP.NET MVC sans la recréer

J'utilise ASP.NET MVC 3 avec des vues Razor. Lorsque vous souhaitez créer une vue, vous pouvez choisir une mise en page (page maître) pour votre vue ou la laisser choisir Par défaut (_Layout).

Je suis intéressant de modifier cette mise en page après avoir créé une vue sans la recréer, y a-t-il un endroit où stocker les informations de mise en page sur les vues ? et comment puis-je le changer?

73voto

Saeid Points 2962

Dans MVC3, vous avez _ViewStart.cshtml qui stocke la mise en page de toutes les pages ; vous pouvez modifier cet élément pour modifier la mise en page de toutes les pages ou vous pouvez ajouter un nouvel élément de mise en page en haut des pages de vue cible dans le @{} comme suit pour modifier la mise en page de la page spécifique :

 @{
    Layout = "~/Views/Shared/_newLayout.cshtml";
    ViewBag.Title = "Index";
}

23voto

Chuck Norris Points 8240

Après avoir créé votre vue en haut du fichier cshtml, vous pouvez voir votre mise en page incluse.

 @{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

Vous pouvez simplement remplacer cela par exemple par une mise en page différente

 @{
    Layout = "~/Views/Shared/_Layout2.cshtml";
}

En outre, vous pouvez stocker cela dans la mise en page de base ( _ViewStart.cshtml ), puis toutes vos vues utiliseront cette mise en page.

7voto

Jithesh Chandra Points 66

Nous pouvons modifier le rendu par défaut des mises en page dans le fichier _ViewStart en utilisant le code ci-dessous :

 @{
 var controller = HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"].ToString();

 string layout = "";
 if (controller == "Admin")
 {
 layout = "~/Views/Shared/_AdminLayout.cshtml";
 }
 else
 {
 layout = "~/Views/Shared/_Layout.cshtml";
 }

 Layout = layout;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X