Estoy utilizando MVC para desarrollar una aplicación web y necesito utilizar páginas maestras anidadas en mi sitio para compartir los componentes visuales.Páginas maestras anidadas de MVC
tengo dos páginas principales y una ContentPage:
- Parent.master
- Child.master
- Content.aspx
quiero hacer referencia a un ContentPlaceHolder colocado en la parte superior Parent.master desde la vista de contenido que tiene Child.master como MasterPage. Parece que puedo usar ContentPlaceHolders del padre directo, pero no del padre indirecto. Veamos con un ejemplo:
Parent.master
<%@ Master Language="C#"
Inherits="System.Web.Mvc.ViewMasterPage"%>
<HTML>
<head runat="server">
<title>
<asp:contentplaceholder id="Title" runat="server" />
</title>
</head>
<body>
<asp:contentplaceholder id="Body" runat="server" />
</body>
<HTML>
Child.Master
<%@ Master Language="C#" MasterPageFile="~/Views/Shared/Parent.master"
Inherits="System.Web.Mvc.ViewMasterPage"%>
<asp:Content ID="BodyContent" ContentPlaceHolderID="Body" runat="server">
<asp:contentplaceholder id="Body1" runat="server" />
<asp:contentplaceholder id="Body2" runat="server" />
</asp:Content>
Content.aspx
<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Child.master"
Inherits="System.Web.Mvc.ViewPage" %>
<asp:Content ID="TitleContent" ContentPlaceHolderID="Title" runat="server">
<!-- Placed to the top parent Master page (does not work) -->
The page title
</asp:Content>
<asp:Content ID="Body1Content" ContentPlaceHolderID="Body1" runat="server">
<!-- Placed in the direct parent Master page (Works) -->
Body content 1
</asp:Content>
<asp:Content ID="Body2Content ContentPlaceHolderID="Body2" runat="server">
<!-- Placed in the direct parent Master page (Works) -->
Body content 2
</asp:Content>
El resultado es que puedo ver Body content 1
y Body content 2
en mi página, pero no el page title
.
pregunta relacionada http://stackoverflow.com/questions/947134/are-there-nested-master-pages-in-asp-net-mvc –