36

我有一个具有母版页和子页的应用程序。我的应用程序在本地主机(在我的 Intranet 上)上运行良好。但是,只要我将它放在 Internet 上的服务器上,单击任何菜单后都会出现下面显示的错误。

仅允许直接在包含内容控件的内容页面中使用内容控件。

截屏

4

12 回答 12

26

在整个子页面中仔细检查您的开始和结束内容标签。

确认他们

  • 存在
  • 拼写正确
  • 有身份证
  • 有 runat="server"
  • 有正确的 ContentPlaceHolderID
于 2013-02-14T05:57:03.037 回答
11

我有完全相同的问题。问题是我在结束内容标签后有一些空格:

</asp:Content>

删除最后一个结束标记后的所有空格、换行符。

于 2015-01-09T08:09:35.743 回答
10

我面临着类似的问题。您是否使用“内容”标签围绕您的代码?

<asp:Content>Add your HTML here</asp:Content> 

并为您的部分提供单独的内容标签。标题声明的标题内容和正文声明的正文内容。

于 2013-02-14T07:29:38.053 回答
9

另一种可能性是行尾。我从源代码控制中复制了一个旧版本的代码,它强制执行 Unix 样式的行结尾。由于它不是结帐,它不会自动将行尾转换为 DOS/Windows 样式。错误消息是“仅允许直接使用内容控件...”错误,即使页面布局正确。似乎缺少 Windows 样式的换行符导致 ASPX 解析器失败。

我能够通过将代码粘贴到行尾不可知的编辑器中来修复它(这导致行尾被规范化为 Windows 样式),将其重新复制到剪贴板并将其粘贴回 Visual Studio,之后页面处理无误。

在 Tripati Subudhi 在问题中提出的案例中,部署过程中的某些内容完全有可能无意中将行尾转换为 Unix 样式,从而导致错误。

于 2013-06-04T21:30:43.683 回答
6

另一个可能的问题是 HTML 注释,我有这些围绕内容控件 - 我相信 ASP.NET 将这些转换为幕后的文字控件 - 因此错误我

于 2014-01-21T12:46:07.460 回答
5

此错误的另一个潜在原因:标签的大小写错误。

改变<asp:content>...<asp:Content>...解决我的问题。

故障案例的原因是 Visual Studio 2012(和 2013)中默认设置的内置格式文档功能。可以在 Tools->Options->Text Editor->HTML (Web Forms)->Formatting 中更改此设置:将标签大写设置为“as entered”,工作室将不再破坏您的文件。

于 2015-08-28T15:38:42.510 回答
2

对我来说,我不喜欢我有一个 Assembly 和一个 Page 指令被注释掉:

<%--<%@ Assembly Name="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" %>--%>
<%--<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="MyClass.MyPage" MasterPageFile="~/_layouts/MyProject/MasterPages/MasterPage.master" %>-->

即使在那之后我有一个有效的 Page 指令,并且没有使用 System.Core 做任何事情。删除它们后,它加载正常。

于 2014-09-19T04:08:29.847 回答
2

对我来说,这是两个具有相同 ID 的内容控件 - 该文件已在 Visual Studio 之外进行了编辑,因此不会发生重复 ID 的自动重命名。这个误导性错误突出显示了第二个内容控件中的第一个图像,其 ID 与第一个相同 - 多么疯狂!

复制整个页面并将其重新发布到自身上解决了它,因为此时 VS 重命名了重复的控件 ID。

于 2016-07-22T20:17:03.787 回答
2

检查您的文档是否有非打印字符

我的母版页在文件开头包含两个<%@ Master %>UTF-8 BOM,因为我从另一个页面粘贴了指令。我能够通过退格来使其工作。

于 2019-06-11T13:53:31.933 回答
0

我一直忽略了一个愚蠢的语法错误。<我的标签开头有一个额外的东西,我MasterType一辈子都看不到 ‍♂️。

<%@ Page Language="vb" AutoEventWireup="true" MasterPageFile="~/Site1.Master" CodeBehind="Default.aspx.vb" Inherits="SomeApp.Web._Default" %>

<<%@ MasterType VirtualPath="~/Site1.Master" %>
于 2019-05-17T15:54:15.683 回答
0

就我而言,我忘记添加 AjaxControlToolkit.dll 的程序集引用。

当我添加参考时,错误消失了。

于 2016-08-16T07:00:47.007 回答
0

在 SharePoint 中,它发生是因为没有发布 pageLayout。

于 2017-08-28T12:58:37.617 回答