C'è un modo per impostare il layout dal controller?Come impostare il layout dal controller
hanno provato:
ViewData["Layout"] = "..."
return View("view", Model);
So che suona strano con alcune persone ....
C'è un modo per impostare il layout dal controller?Come impostare il layout dal controller
hanno provato:
ViewData["Layout"] = "..."
return View("view", Model);
So che suona strano con alcune persone ....
Il metodo View ha un sovraccarico per impostare il layout principale in modo simile a questo
return View ("NameOfView",masterName:"viewName");
Utilizzando il codice, si potrebbe mettere questo nel vostro Vista:
@ {
Layout = ViewData["Layout"];
}
Daren Dimitrov ha una bella risposta su questo uno con gli attributi:
How do I specify different Layouts in the ASP.NET MVC 3 razor ViewStart file?
grazie per averlo indicato! –
Se si dispone di un file nella directory _ViewStart.cshtml Visualizzazioni, è possibile impostare automaticamente il layout per tutte le viste all'interno della stessa cartella (e sottocartelle):
@{
Layout = "~/Views/Shared/Layout.cshtml";
}
La domanda era su come impostarlo dal controller. –
Abbastanza corretto, ho letto male la domanda :). In tal caso, potresti utilizzare il suggerimento di Rob sopra. –
metodo d'azione è possibile utilizzare MasterName proprietà in ViewResult classe per cambiare layout di pagina.
public ActionResult Index()
{
var myView = View();
myView.MasterName = "~/Views/Shared/_Layout2.cshtml";
return myView;
}
Sempre bello vedere sapori diversi. –
Nel controller è possibile impostare una pagina master come questa. Sto usando MVC 5,2
return View("ViewName", "MasterPageName", model)
la questione chiede specificamente il controller ... – Nathan
Ha già impostato il Viewdata [ "Layout"] nel suo codice, questo è quello che ha bisogno di aggiungere al fine di renderlo lavoro ma vedo quello che stai dicendo. –
Funziona perfettamente per me, Dotnet Core MVC non ha la proprietà di MasterName sulla vista quindi non ho potuto impostarlo. Ho ottimizzato questo codice per essere leggermente più robusto. Layout = (ViewData ["Layout"] come stringa) ?? "_Disposizione"; – Matt