Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 如何从控制器设置布局_Asp.net Mvc 3_Razor - Fatal编程技术网

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)