代码之家  ›  专栏  ›  技术社区  ›  3Dave

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

  •  5
  • 3Dave  · 技术社区  · 14 年前

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

    主人:

    <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 回复  |  直到 14 年前
        1
  •  1
  •   Charlino    14 年前

    除了在你孩子的主页上写下以下内容,我想不出别的办法

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

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

    HTHs
    查尔斯

        2
  •  1
  •   BritishDeveloper    14 年前

    删除所有 ContentPlaceHolder S并离开 SearchFormControl 直接在site.master上。如果您不想覆盖 搜索表单控件 那么你不需要定义 ControlPlaceHolder S

        3
  •  1
  •   Stéphane    14 年前

    您可以在母版页的ContentPlaceholder中放置内容。如果不使用子页上的内容重写,则默认情况下将呈现。