在mvc 3应用程序中有两个母版页?

时间:2013-12-10 17:13:21

标签: asp.net asp.net-mvc asp.net-mvc-3 razor

我现在有一个 MVC 应用程序,它的母版页使用_MainLayoutPage

我想为另一个目的创建另一个母版页。我也将创建一个新的控制器。

我该怎么做?

2 个答案:

答案 0 :(得分:2)

最简单的方法是在Action方法中,为Layout设置Viewbag属性

public ActionResult Index()
{
  ViewBag.Layout= "~/Views/Shared/layout2.cshtml";

在视图中,设置布局属性

@{
    Layout = @ViewBag.Layout;
}

答案 1 :(得分:0)

在_ViewStart.cshtml中,输入:

    @{
        try {
            Layout = "~/Views/" + ViewContext.RouteData.Values["controller"] + "/_Layout.cshtml";
        }
        catch {
            Layout = "~/Views/Shared/_Layout.cshtml";
        }
    }

然后您可以将控制器特定_Layout.cshtml放在控制器文件夹中,例如

  • ~/Views/User/_Layout.cshtml表示名为UserController
  • 的控制器
  • ~/Views/Account/_Layout.cshtml表示名为AccountController
  • 的控制器

由于try / catch,如果没有为特定控制器定义,它将回退到'〜/ Views / Shared / _Layout.cshtml'布局。