2012-04-18 22 views

Respuesta

36

El método de vista tiene sobrecarga para establecer su diseño maestro algo como esto

return View ("NameOfView",masterName:"viewName"); 
6

Utilizando su código, se puede poner esto en su Vista:

@ { 
    Layout = ViewData["Layout"]; 
} 
+0

la pregunta se refiere específicamente sobre el controlador ... – Nathan

+1

Ya ha establecido la ViewData [ "Layout"] en su código, esto es lo que necesita para agregar a la vista para que sea trabajo, pero veo lo que dices. –

+0

Funciona perfectamente para mí, Dotnet Core MVC no tiene la propiedad de MasterName en la vista, así que no pude configurar eso. Ajusté este código para ser un poco más robusto. Layout = (ViewData ["Layout"] como String) ?? "_Diseño"; – Matt

-2

Si usted tiene un archivo en el directorio de _ViewStart.cshtml Vistas, puede configurar automáticamente la disposición de todos los puntos de vista dentro de la misma carpeta (y subcarpetas):

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

La pregunta fue sobre cómo configurarlo desde el controlador. –

+1

Bastante bien, leí mal la pregunta :). En ese caso, podría usar la sugerencia de Rob anterior. –

8

en el método de acción que se pueden utilizar MasterName propiedad en ViewResult clase para cambiar de diseño de página.

public ActionResult Index() 
     { 
      var myView = View(); 
      myView.MasterName = "~/Views/Shared/_Layout2.cshtml"; 
      return myView; 
     } 
+0

Siempre es bueno ver diferentes sabores. –

2

En el controlador puede configurar una página maestra como esta. Estoy usando MVC 5,2

return View("ViewName", "MasterPageName", model) 
Cuestiones relacionadas