根据控制器指定不同的_Layout.cshtml

bb2*_*bb2 3 .net asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-5

我创建了一个asp mvc3项目,我希望有一个不同的_Layout.cshtml,具体取决于所选的控制器.这是因为对于控制器1,它有2个按钮,控制器2将有3个,而控制器3将有4个.每个控制器用于特定类型的用户,因此它取决于登录.

如何将控制器及其视图链接到另一个Layout.cshtml,现在有一个布局,它位于Shared文件夹下.

谢谢!

Dav*_*veo 11

视图应确定布局,而不是控制器.

Controller应该只确定返回什么View.

然后在视图的顶部,您可以指定布局.您可以在其周围添加一个If语句,以根据您的数据进行更改

@{
    if(ViewBag.someValue)
       Layout = "~/Views/Shared/_Layout.cshtml";
    else
        Layout = "~/Views/Shared/_otherLayout.cshtml";
}
Run Code Online (Sandbox Code Playgroud)