嵌套内容占位符

时间:2012-04-07 07:29:10

标签: asp.net-mvc

我希望我的母版页分为左右两部分。

以下是我的工作方式:

母版页:

<section id="main">
        <asp:ContentPlaceHolder ID="MainContent" runat="server">
        <div>
            <asp:ContentPlaceHolder ID="left" runat="server" />
        </div>
        <div>
            <asp:ContentPlaceHolder ID="right" runat="server" />
        </div>
    </section>
</asp:ContentPlaceHolder >

关于视图:

<asp:Content ID="aboutContent" ContentPlaceHolderID="MainContent" runat="server">
    <asp:Content ID="leftHome" ContentPlaceHolderID="left" runat="server">
        <h2>About</h2>
    </asp:Content>
    <asp:Content ID="rightHome" ContentPlaceHolderID="right" runat="server">
        <h2>About</h2>
    </asp:Content>
</asp:Content>

我收到错误:内容控件必须是内容页面中的顶级控件或引用母版页的嵌套母版页。

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

你不能有这样的嵌套。以下是您可以在母版页中执行的操作:

<section id="main">
    <asp:ContentPlaceHolder ID="MainContent" runat="server" />
    <div>
        <asp:ContentPlaceHolder ID="left" runat="server" />
    </div>
    <div>
        <asp:ContentPlaceHolder ID="right" runat="server" />
    </div>
</section>

并在视图中:

<asp:Content ID="leftHome" ContentPlaceHolderID="left" runat="server">
    <h2>Left content</h2>
</asp:Content>

<asp:Content ID="rightHome" ContentPlaceHolderID="right" runat="server">
    <h2>Right content</h2>
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    some main content
</asp:Content>