![](/img/trans.png)
[英]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.