ASP.NET MVC嵌套母版页,继承内容

时间:2010-08-19 19:34:31

标签: asp.net-mvc master-pages

我有一系列嵌套的母版页,如下所示:

的Site.Master:

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

在嵌套(子)母版页中,area.master

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

我有两个单独的内容页面。一个想要将自己的内容添加到SearchFormContent,另一个想要保留在顶级母版页中定义的内容。当然,由于子母版页面定义了SearchFormContent块的内容,以便子页面可以访问它,因此顶级母版页中定义的内容将被删除。

有什么办法吗?

3 个答案:

答案 0 :(得分:1)

删除所有ContentPlaceHolder并将SearchFormControl直接留在site.master上。如果您永远不想覆盖SearchFormControl,则无需定义ControlPlaceHolder

答案 1 :(得分:1)

除了在您的子母版页中包含以下内容之外,我想不出任何其他方法

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

讨厌我知道,但这是我在使用母版页时能想到的唯一方法。

HTHS,
查尔斯

答案 2 :(得分:1)

您可以将内容放在母版页上的contentPlaceHolder中。如果您不覆盖子页面上的内容,则默认情况下将呈现。