2009-06-03 5 views

Répondre

40

Nous utilisons les pages maîtres imbriquées fréquemment, afin de mise en page séparée du standard comprend et un site large balisage, comme ceci:

Site.master:

<%@ Master Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewMasterPage<PageViewModel>" %> 

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    <meta name="language" content="en"> 
    <title><asp:ContentPlaceHolder ID="Title" runat="server"><%= Model.Page.Title %></asp:ContentPlaceHolder></title> 

    <% Html.RenderPartial("Head"); %> 

    <meta name="robots" content="index, follow"> 
    <meta name="robots" content="noodp"> 
    <asp:ContentPlaceHolder ID="ExtraHead" runat="server"></asp:ContentPlaceHolder> 
</head> 
<body > 

    <asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder> 

</body> 
</html> 

ont alors un autre maître à l'aide du site .master,

Standard.Master:

<%@ Master Language="C#" AutoEventWireup="true" Inherits="System.Web.Mvc.ViewMasterPage<PageViewModel>" MasterPageFile="Site.Master" %> 
<asp:Content ContentPlaceHolderID="ExtraHead" runat="server"> 
    <asp:ContentPlaceHolder ID="ExtraHead" runat="server"></asp:ContentPlaceHolder> 
</asp:Content> 

<asp:Content ContentPlaceHolderID="MainContent" runat="server"> 


      <asp:ContentPlaceHolder ID="MainContent" runat="server"></asp:ContentPlaceHolder> 


</asp:Content> 
+2

Bel exemple, j'aime comment vous démontrer que vous peut utiliser le même ID ContentPlaceHolder à chaque niveau du modèle maître – lambacck

+0

@Richard: Inherits = "System.Web.Mvc.ViewMasterPage " donne une erreur dans mon cas, mais j'ai utilisé Inherits = "System.Web.Mvc. ViewMasterPage "et cela a bien fonctionné.Pourriez-vous s'il vous plaît expliquer pourquoi est-ce? Mais en effet votre réponse est excellente –

+0

Très agréable.Merci! – Ricky

Questions connexes