Asp.net mvc 3 如何从控制器设置布局
有没有办法从控制器设置布局 已尝试:Asp.net mvc 3 如何从控制器设置布局,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,有没有办法从控制器设置布局 已尝试: ViewData["Layout"] = "..." return View("view", Model); 我知道对某些人来说这听起来很奇怪……使用您的代码,您可以将其放在您的视图中: @ { Layout = ViewData["Layout"]; } View方法有重载来设置其主布局,如下所示 return View ("NameOfView",masterName:"viewName"); Daren Dimitrov在这一点上有一个非
ViewData["Layout"] = "..."
return View("view", Model);
我知道对某些人来说这听起来很奇怪……使用您的代码,您可以将其放在您的视图中:
@ {
Layout = ViewData["Layout"];
}
View方法有重载来设置其主布局,如下所示
return View ("NameOfView",masterName:"viewName");
Daren Dimitrov在这一点上有一个非常好的答案,有以下特点:
如果视图目录中有一个_ViewStart.cshtml文件,则可以自动为同一文件夹(和子文件夹)中的所有视图设置布局:
在action方法中,您可以在ViewResult类中使用MasterName属性来更改布局页面
public ActionResult Index()
{
var myView = View();
myView.MasterName = "~/Views/Shared/_Layout2.cshtml";
return myView;
}
在控制器中,您可以像这样设置母版页。我正在使用MVC5.2
return View("ViewName", "MasterPageName", model)
问题是如何从控制器设置它。公平地说,误读了问题:)。在这种情况下,你可以使用上面Rob的建议。看到不同的风格总是很棒的。他已经在他的代码中设置了ViewData[“Layout”],这是他需要添加到视图中以使其工作的内容,但我明白你的意思。对我来说效果非常好,Dotnet Core MVC在视图上没有MasterName属性,所以我无法设置它。我对这段代码进行了调整,使其更加健壮。布局=(ViewData[“布局”]作为字符串)??“_布局”;
return View("ViewName", "MasterPageName", model)