2013-02-14 52 views
26

我有一个具有母版页和子页面的应用程序。我的应用程序在本地主机上(在我的内部网上)工作正常。但是一旦我将它放在互联网上的服务器上,点击任何菜单后,我会看到下面显示的错误。只有内容控件被允许直接在包含ASP.NET中的内容控件的内容页面中

Only Content controls are allowed directly in a content page that contains Content controls.

screenshot

+0

你可以尝试摆脱那个空间......也许有额外的空间和被视为文字 – nunespascal 2013-02-14 05:58:51

+0

嗨,我检查了这一点。但是,因为它在本地主机上工作,所以在找到解决方案时遇到点问题。 – 2013-02-14 06:12:07

回答

21

双倍和三倍检查整个子页面的打开和关闭的内容标签。

确认它们

  • 是存在
  • 拼写正确
  • 有一个ID
  • 已经RUNAT = “服务器”
  • 具有正确ContentPlaceHolderID
9

我正面临类似的问题。你是否用“内容”标签来包围你的代码?

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

并为您的部分设置单独的内容标签。 头部声明的头部内容和正文声明的主体内容。

+2

是的,我有单独的头部和身体内容。此外,我的代码位于内容占位符内。它仍然给出同样的错误。 – 2013-02-14 09:38:45

5

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

我能够通过将代码粘贴到行结束不可知编辑器(导致行结束标准化为Windows样式)中,将其重新复制到剪贴板并将其粘贴回Visual Studio中来修复它,之后页面处理没有错误。

在Tripati Subudhi提出的问题中,完全有可能是因为部署过程中使用了无意间将行结束符转换为Unix样式,从而导致错误。

+1

这是我的问题。我使用的是Visual Studio,所以我选择了所有的评论,然后取消评论。这为我修好了。 – 2016-02-16 16:03:29

6

另一个可能的问题是HTML的意见,我已经围绕这些内容控制 - 我相信ASP.NET转换到这些幕后字面控制 - 因此错误我

2

对于我来说,它没有像我有一个组件和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程序的任何东西。在删除它们之后,它装载正常。

6

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

</asp:Content> 

最后的结束标记之后删除所有的空格,换行。

+3

这是摆脱Web表单的一个很好的理由 – Beanwah 2016-07-26 15:13:00

3

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

改变<asp:content>...改为<asp:Content>...修复了我的情况。

发生故障的原因是内置的格式文件在Visual Studio 2012(和2013)中的默认设置功能。 可以在工具 - >选项 - >文本编辑器 - > HTML(Web窗体) - >格式化中更改此设置:将标记大写设置为'输入',studio将不再销毁您的文件。

1

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

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

0

在我的情况下,我忘了添加AjaxControlToolkit.dll的程序集引用。

当我添加引用时,错误消失。

0

因为pageLayout未发布,所以发生了这种情况。

相关问题