2010-08-19 17 views
5

que tengo una serie de páginas maestras anidadas, así:ASP.NET MVC páginas maestras anidadas, heredad de contenido

Site.Master:

<asp:ContentPlaceHolder ID="SearchFormContent" runat="server"> 
<%Html.RenderPartial("SearchFormControl"); %> 
</asp:ContentPlaceHolder> 

en la página maestra anidada (hijo), área de .master

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

Tengo dos páginas de contenido separadas. Uno desea agregar su propio contenido a SearchFormContent, el otro desea mantener el contenido definido en la página maestra de nivel superior. Por supuesto, dado que la página principal para niños define el contenido del bloque SearchFormContent para que las páginas secundarias puedan acceder a él, el contenido definido en la página maestra de nivel superior se borra.

¿Alguna forma de hacerlo?

+0

Estoy luchando para encontrar una solución a este mismo problema también. en el año más o menos desde que me preguntó, ¿alguna vez encontró una forma conveniente de hacer esto? – Funka

+0

No realmente. La solución anidada de marcador de posición funciona bien, aunque obviamente es fea. He pasado al motor de vista Razor, que tiene un sistema mucho más agradable para representar secciones de página de forma opcional, reemplazar contenido solo cuando lo desee, etc. –

Respuesta

1

No puedo pensar en ninguna otra forma que tiene la siguiente en su página maestra niño

<asp:Content ContentPlaceHolderID="SearchFormContent" ID="SearchFormContentContainer" runat="server"> 
    <asp:ContentPlaceHolder ID="SearchFormContent" runat="server"> 
     <%Html.RenderPartial("SearchFormControl"); %> 
    </asp:ContentPlaceHolder> 
</asp:ContentPlaceHolder> 

I Nasty Sé, pero es la única forma en que se me ocurre cuando uso páginas maestras.

HTHS,
Charles

+0

No me gustaría tener que duplicar eso por todos lados. Estamos hablando de bastantes páginas. –

+0

¿Se refieren a algunas páginas maestras? Porque solo tiene que hacerlo en las páginas maestras (secundarias). – Charlino

+0

Dos años y una redisignación completa y migración a Sitefinity más adelante, por lo tanto, realmente tiene sentido. –

1

Quite todos sus ContentPlaceHolder sy deje SearchFormControl directamente en el sitio. Si no desea reemplazar el SearchFormControl entonces no es necesario definir el ControlPlaceHolder s

+0

El problema es que QUIERO anular el contenido de SearchFormControl. Se representa de manera diferente en algunas áreas diferentes del sitio, pero algunas áreas necesitan utilizar el contenido predeterminado de la página maestra del sitio de nivel superior. –

+1

@David Lively: según sus dos comentarios, parece que quiere su pastel y también para comerlo. – jfar

1

se puede poner el contenido en el ContentPlaceHolder en el masterpage. eso se representará de manera predeterminada si no anula el contenido con un contenido en una página secundaria.

+0

Cuando agrego un nuevo "Formulario web usando la página maestra", el diseñador anulará todos los titulares de lugar que se encuentran en la página maestra. ¿Hay alguna manera de decir que no se anule uno de ellos? – Adi

Cuestiones relacionadas