有没有办法从控制器设置布局?
试过:
ViewData["Layout"] = "..."
return View("view", Model);
我知道这对某些人来说听起来很奇怪......
有没有办法从控制器设置布局?
试过:
ViewData["Layout"] = "..."
return View("view", Model);
我知道这对某些人来说听起来很奇怪......
View 方法有重载来设置它的主布局像这样
return View ("NameOfView",masterName:"viewName");
在操作方法中,您可以使用 ViewResult类中的MasterName属性来更改布局页面。
public ActionResult Index()
{
var myView = View();
myView.MasterName = "~/Views/Shared/_Layout2.cshtml";
return myView;
}
使用您的代码,您可以将其放在您的视图中:
@ {
Layout = ViewData["Layout"];
}
达伦·迪米特洛夫(Daren Dimitrov)对此有一个非常好的答案:
在控制器中,您可以像这样设置母版页。我正在使用 MVC 5.2
return View("ViewName", "MasterPageName", model)
如果您的 Views 目录中有一个 _ViewStart.cshtml 文件,您可以自动为同一文件夹(和子文件夹)中的所有视图设置布局:
@{
Layout = "~/Views/Shared/Layout.cshtml";
}