¿Hay alguna manera de configurar el diseño desde el controlador?Cómo configurar el diseño desde el controlador
han intentado:
ViewData["Layout"] = "..."
return View("view", Model);
sé que va a sonar extraño con algunas personas ....
¿Hay alguna manera de configurar el diseño desde el controlador?Cómo configurar el diseño desde el controlador
han intentado:
ViewData["Layout"] = "..."
return View("view", Model);
sé que va a sonar extraño con algunas personas ....
El método de vista tiene sobrecarga para establecer su diseño maestro algo como esto
return View ("NameOfView",masterName:"viewName");
Utilizando su código, se puede poner esto en su Vista:
@ {
Layout = ViewData["Layout"];
}
Daren Dimitrov tiene una respuesta muy buena en este caso con los atributos:
How do I specify different Layouts in the ASP.NET MVC 3 razor ViewStart file?
¡gracias por señalar eso! –
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";
}
La pregunta fue sobre cómo configurarlo desde el controlador. –
Bastante bien, leí mal la pregunta :). En ese caso, podría usar la sugerencia de Rob anterior. –
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;
}
Siempre es bueno ver diferentes sabores. –
En el controlador puede configurar una página maestra como esta. Estoy usando MVC 5,2
return View("ViewName", "MasterPageName", model)
la pregunta se refiere específicamente sobre el controlador ... – Nathan
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. –
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