【问题标题】:asp error: Content controls have to be top-level controls in a content page or a nested master page that references a master pageasp错误:内容控件必须是内容页或引用母版页的嵌套母版页中的顶级控件
【发布时间】:2015-04-17 23:45:59
【问题描述】:

我正在尝试制作一个 asp.net 网站。

我使用以下格式创建了一个母版页:

<%@ Page MasterPageFile="masterPage.master" %>

<asp:Content ContentPlaceHolderId="CPH1" runat="server">

<HTML>

    <head>
    </head>

    <body>
</asp>

<asp:Content ContentPlaceHolderId="CPH2" runat="server">


</asp>

<asp:Content ContentPlaceHolderId="CPH3" runat="server">

    </body>

</HTML>

</asp>

各个页面的内容将存储在哪里

ContentPlaceHolderId="CPH2"

以及占位符中的内容

ContentPlaceHolderId="CPH1"
ContentPlaceHolderId="CPH3"

将是源自母版页的所有页面的通用内容。

然后我制作了以下页面,应该是我的主页,并将其保存为 home.aspx:

<asp:Content ContentPlaceHolderId="CPH1" runat="server">
</asp>

<asp:Content ContentPlaceHolderId="CPH2" runat="server">

    INDIVIDUAL PAGE CONTENT

</asp>

<asp:Content ContentPlaceHolderId="CPH3" runat="server">

</asp>

我认为这样做是正确的,尽管我不确定,因为我无法找到任何关于我需要做什么的明确教程。

我已经上传到服务器并加载了以下网址:

www.'mydomain'.co.uk/home.aspx

但我收到以下错误:

内容控件必须是内容页中的顶级控件或引用母版页的嵌套母版页。

我不确定我做错了什么,或者如何解决它。如果有人能告诉我我做错了什么,或者指出一些关于我需要做什么的明确说明,这将非常有帮助,包括如何正确配置我的默认页面以指向我的主页

【问题讨论】:

  • 一般来说,您的顶级母版页应该包含网站的基本结构,例如headhtml 元素。你绝对不应该将你的控件命名为“CPH1”和CPH2。一个更好的名称应该是语义的,它应该描述应该包含的内容。喜欢SidebarCPHMainBodyCPH

标签: asp.net


【解决方案1】:

你需要用完全对应的结束标签来结束你的&lt;asp: 控制标签。除非这是我不知道的语法,否则您不能使用&lt;/asp&gt;

所以将&lt;/asp&gt; 更改为&lt;/asp:Content&gt;

但是,主要问题是您试图将标记放置在&lt;asp:Content&gt; 控件之外。当.aspx 页面使用母版页时,这是不允许的。

[忽略上述部分,我没有正确阅读您的代码 - 您的所有标记&lt;asp:Content&gt;控件内。]

但是,我要说的是,您的母版页通常会包含所有 &lt;html&gt;&lt;head&gt;&lt;body&gt; 标记,&lt;asp:ContentPlaceHolder&gt; 控件放置在具有适当名称的适当位置。在子页面中包含这些标签是不常见的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多