[英]Only content controls are allowed directly in a content page that contains content controls
[英]Only Content controls are allowed directly in a content page that contains Content controls in ASP.NET
我有一个具有母版页和子页面的应用程序。 我的应用程序在本地主机上(在我的Intranet上)正常工作。 但是,只要我把它放在互联网上的服务器上,我点击任何菜单后都会看到如下所示的错误。
只有内容控件才能直接包含在包含内容控件的内容页面中。
双重和三重检查您的子页面中的开始和结束内容标记。
确认他们
我有完全相同的问题。 问题是我在结束内容标记后面有一些空格 :
</asp:Content>
删除最后一个结束标记后的所有空格和换行符。
我面临着类似的问题。 您是否使用“内容”标记包围您的代码?
<asp:Content>Add your HTML here</asp:Content>
并为您的部分提供单独的内容标记。 标题声明的头部内容和正文声明的正文内容。
另一种可能性是线路结束。 我从源代码控制中复制了一个旧版本的代码,强制执行Unix样式的行结尾。 由于它不是结帐,因此它不会自动将行结尾转换为DOS / Windows样式。 即使页面布局正确,错误消息是“只允许内容控件直接...”错误。 看起来缺少Windows样式换行符导致ASPX解析器失败。
我能够通过将代码粘贴到行结束不可知编辑器(导致行结尾标准化为Windows样式),将其重新复制到剪贴板并将其粘贴回Visual Studio中,之后页面修复它处理没有错误。
在Tripati Subudhi在问题中提出的案例中,完全有可能将部署过程中的某些内容无意中将行结尾转换为Unix样式,从而导致错误。
另一个可能的问题是HTML注释,我有这些围绕内容控件 - 我相信ASP.NET将这些转换为幕后的文字控件 - 因此错误我
此错误的另一个潜在原因:标签包含错误的情况。
将<asp:content>...
更改为<asp:Content>...
修复了我的问题。
错误案例的原因是visual studio 2012(和2013)中的内置格式文档功能具有默认设置。 可以在工具 - >选项 - >文本编辑器 - > HTML(Web窗体) - >格式化中更改此设置:将标签大写设置为“已输入”,工作室将不再销毁您的文件。
对我来说,它不喜欢我有一个程序集和一个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。 刚卸下它们后,装好了。
对我来说,两个内容控件具有相同的ID - 该文件已在Visual Studio之外编辑,因此不会发生重复ID的自动重命名。 这个误导性错误突出显示第二个内容控件中的第一个图像,其ID与第一个相同 - 这是一个疯狂的追逐!
复制整个页面并将其重新放置在自身上就可以解决问题,因为此时VS会重命名重复的控件ID。
在我的情况下,我忘了添加AjaxControlToolkit.dll的程序集引用。
当我添加引用时,错误消失了。
在SharePoint中,它发生在pageLayout未发布之后。
我有一个愚蠢的语法错误,我一直忽视。 还有一个额外的<
在我的MasterType
标签的开头,我看不到我的生活🤦♂️。
<%@ Page Language="vb" AutoEventWireup="true" MasterPageFile="~/Site1.Master" CodeBehind="Default.aspx.vb" Inherits="SomeApp.Web._Default" %>
<<%@ MasterType VirtualPath="~/Site1.Master" %>
我的<%@ Master %>
页在文件的开头包含两个 UTF-8 BOM表,因为我从另一个页面粘贴了<%@ Master %>
指令。 我能够通过退出它来使它工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.