2013-02-14 71 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未發佈,所以發生了這種情況。