有沒有辦法從控制器設置佈局?如何設置控制器的佈局
曾嘗試:
ViewData["Layout"] = "..."
return View("view", Model);
我知道這聽起來奇怪有些人....
有沒有辦法從控制器設置佈局?如何設置控制器的佈局
曾嘗試:
ViewData["Layout"] = "..."
return View("view", Model);
我知道這聽起來奇怪有些人....
查看方法有過載設置它的主佈局是這樣的
return View ("NameOfView",masterName:"viewName");
使用你的代碼,你可以把這個在您的視圖:
@ {
Layout = ViewData["Layout"];
}
達人季米特洛夫對這一帶屬性的一個非常好的答案:
How do I specify different Layouts in the ASP.NET MVC 3 razor ViewStart file?
謝謝指出! – 2012-04-18 08:21:18
如果你在你的瀏覽目錄中的文件_ViewStart.cshtml,可以自動在同一文件夾中的所有視圖設置佈局(和子文件夾):
@{
Layout = "~/Views/Shared/Layout.cshtml";
}
問題是關於如何從控制器設置它。 – 2012-04-22 22:13:33
不夠公平,誤解了這個問題:)。在這種情況下,你可以使用Rob的建議。 – 2012-04-23 07:51:02
在操作方法可以使用MasterName財產的ViewResult類來更改頁面佈局。
public ActionResult Index()
{
var myView = View();
myView.MasterName = "~/Views/Shared/_Layout2.cshtml";
return myView;
}
總是很高興看到不同的口味。 – 2015-07-30 00:59:13
在控制器,你可以設置這樣的母版。我使用MVC 5.2
return View("ViewName", "MasterPageName", model)
問題專門詢問控制器... – Nathan 2016-07-21 03:26:44
他已經設置計算機[「佈局」]在他的代碼,這是他需要添加到視圖,使其什麼工作,但我明白你在說什麼。 – 2016-07-21 08:14:46
對我來說非常合適,Dotnet Core MVC在視圖上沒有MasterName的屬性,所以我無法設置它。我調整了這個代碼,使其稍微更健壯。 Layout =(ViewData [「Layout」] as String)?? 「_佈局」; – Matt 2017-03-17 14:18:42