2014-03-19 30 views
0

我有一箇舊的MVC2項目,我用剃刀將它分級轉換爲MVC 5。帶剃刀的MVC兒童母版頁面

由於ASP主頁的剃鬚刀視圖是不可能的,我決定將Site.Master複製到_Layout.cshtml

一切都好但是有一個問題,但是。

我有其他的母版頁,TwoColumnsLayout.Master,一種「兒童」母版頁,是這樣開始的:

<%@ Master MasterPageFile="~/Views/Shared/Site.Master" Language="C#" Inherits="System.Web.Mvc.ViewMasterPage" %> 

<asp:Content ContentPlaceHolderID="MetaContent" runat="server"> 
    <asp:ContentPlaceHolder ID="MetaContent" runat="server" /> 
</asp:Content> 

<asp:Content ContentPlaceHolderID="HeadContent" runat="server"> 
    <asp:ContentPlaceHolder ID="HeadContent" runat="server" /> 
</asp:Content> 

<asp:Content ContentPlaceHolderID="MainContent" runat="server"> 
    <div class="breadcrumbs"> 
    ... 

如何能夠轉換和使用這一個剃刀引擎?

+0

http://weblogs.asp.net/scottgu/archive/2010/12/30/asp-net-mvc-3-layouts-and-sections-with-razor.aspx –

回答

2

利用@{ Layout = ""; }功能。

例如:

〜/查看/共享/ _LayoutMain.cshtml

<html> 
<head> 
    <link href="..." rel="stylesheet" type="text/css" /> 
</head> 
<body> 
    <!-- header markup --> 
    @RenderBody() 
    <!-- footer markup --> 
</body> 
</html> 

〜/查看/共享/ _LayoutChild.cshtml

@{ 
    Layout = "~/Views/Shared/_LayoutMain.cshtml"; 
} 
<!-- Child Layout content --> 
<div> 
    @RenderBody() 
</div> 

〜/ Views/MyPage/_SomeViewPage.cshtml

@{ 
    Layout = "~/Views/Shared/_LayoutChild.cshtml"; 
} 

<div> 
    @RenderBody() 
</div> 
0

您只需要使用嵌套的佈局模板。

與下列創建另一個佈局_TwoColumnsLayout.cshtml

@{ 
    Layout = "~/Shared/_Layout.cshtml"; 
} 

//Nested specific markup ... 

@RenderBody() 

然後在您的視圖指定新嵌套模板如下:

@{ 
    Layout = "~/Shared/_TwoColumnsLayout.cshtml.cshtml"; 
}