有没有办法从控制器设置布局?如何设置控制器的布局
曾尝试:
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