Подтвердить что ты не робот

Только элементы управления содержимым разрешены непосредственно на странице содержимого, содержащей элементы управления содержимым в ASP.NET.

У меня есть приложение, которое имеет главную страницу и дочерние страницы. Мое приложение отлично работает на локальном хосте (в моей интрасети). Но как только я помещаю его на сервер, который находится в Интернете, я получаю ошибку, показанную ниже, после нажатия на любое меню.

Элементы управления содержимым разрешены непосредственно на странице содержимого, содержащей элементы управления содержимым.

screenshot

4b9b3361

Ответ 1

Двойная и тройная проверка вашего открытия и закрытия тегов контента на всех ваших дочерних страницах.

Подтвердите, что они

  • существуют
  • написаны правильно
  • имеют идентификатор
  • имеют runat = "сервер"
  • имеют правильный ContentPlaceHolderID

Ответ 2

Я столкнулся с подобной проблемой. Вы окружаете свой код тегом "content"?

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

И у вас есть отдельные теги контента для ваших разделов. Содержимое заголовка для объявления заголовка и содержимого тела для объявления тела.

Ответ 3

У меня была точно такая же проблема. Проблема заключалась в том, что после тега контента содержимого я имел несколько пробелов:

</asp:Content>

Удалите все пробелы, разрывы строк после последнего закрывающего тега.

Ответ 4

Другая возможность - окончание строк. Я скопировал более старую версию кода из исходного элемента управления, которая обеспечивала окончание строк в стиле Unix. Поскольку это не проверка, она автоматически не конвертировала окончание строки в стиль DOS/Windows. Сообщение об ошибке было ошибкой "Только элементы управления содержимым разрешены напрямую...", даже если страница была правильно отлажена. Похоже, что отсутствие разрывов строк в стиле Windows вызвало сбой парсера ASPX.

Мне удалось исправить это, вставив код в текстовый редактор, завершающий строку (что привело к тому, что окончание строк было нормализовано в стиле Windows), переписав его в буфер обмена и вставив обратно в Visual Studio, после который обрабатывается страницей без ошибок.

В случае, представленном Tripati Subudhi в вопросе, вполне возможно, что что-то в процессе развертывания использовало непреднамеренно преобразованные окончания строк в стиле Unix, что приводило к ошибке.

Ответ 5

Еще одна возможная проблема - комментарии HTML, у меня были элементы управления Content - я считаю, что ASP.NET преобразует их в литературные элементы управления за кулисами - следовательно, ошибка i

Ответ 6

Другая потенциальная причина этой ошибки: теги с неправильным случаем.

изменение <asp:content>... до <asp:content>... исправил проблему в моем случае.

причиной ошибочного случая была встроенная функция документа формата в visual studio 2012 (и 2013) с настройками по умолчанию. параметр для этого можно изменить в Инструменты- > Параметры- > Текстовый редактор- > HTML (Веб-формы) → Форматирование: установите заглавие тега на "как указано", и студия больше не будет уничтожать ваши файлы.

Ответ 7

Мне не понравилось, что у меня была сборка и директива страницы:

<%--<%@ 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" %>-->

Несмотря на то, что после этого у меня была действительная директива по страницам, и я не использовал System.Core для чего-либо. После того, как вы просто удалили их, он загрузился нормально.

Ответ 8

Для меня было два элемента управления содержимым, которые имели один и тот же идентификатор - файл был отредактирован вне Visual Studio, поэтому автоматического переименования дубликата ID не произошло. Эта вводящая в заблуждение ошибка заключалась в том, чтобы выделить первое изображение во втором элементе управления содержимым с тем же идентификатором, что и первый, - что дикая гусиная погоня!

Копирование всей страницы и ее повторное копирование по сути решало ее, потому что VS в этой точке затем переименовал дублирующий идентификатор элемента управления.

Ответ 9

В моем случае я забыл добавить ссылку на сборку AjaxControlToolkit.dll.

Когда я добавляю ссылку, ошибка исчезла.

Ответ 10

в SharePoint это произошло, так как pageLayout не был опубликован.

Ответ 11

У меня была глупая синтаксическая ошибка, которую я продолжал пропускать. Был дополнительный < в начале моего MasterType тега я не мог видеть в жизни меня 🤦♂️.

<%@ Page Language="vb" AutoEventWireup="true" MasterPageFile="~/Site1.Master" CodeBehind="Default.aspx.vb" Inherits="SomeApp.Web._Default" %>

<<%@ MasterType VirtualPath="~/Site1.Master" %>

Ответ 12

Проверьте свой документ на наличие непечатных символов

Моя главная страница содержала две спецификации UTF-8 в самом начале файла, потому что я вставил директиву <%@Master %> с другой страницы. Я смог заставить это работать, вытесняя их.