簡體   English   中英

只允許內容控件直接在包含ASP.NET中的內容控件的內容頁面中

[英]Only Content controls are allowed directly in a content page that contains Content controls in ASP.NET

我有一個具有母版頁和子頁面的應用程序。 我的應用程序在本地主機上(在我的Intranet上)正常工作。 但是,只要我把它放在互聯網上的服務器上,我點擊任何菜單后都會看到如下所示的錯誤。

只有內容控件才能直接包含在包含內容控件的內容頁面中。

截圖

雙重和三重檢查您的子頁面中的開始和結束內容標記。

確認他們

  • 存在
  • 拼寫正確
  • 有一個ID
  • 有runat =“服務器”
  • 擁有正確的ContentPlaceHolderID

我有完全相同的問題。 問題是我在結束內容標記后面有一些空格

</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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM