有没有办法从控制器设置布局?
试过:
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";
}