2013-02-14 14 views
26

Ho un'applicazione con una pagina principale e pagine figlio. La mia applicazione funziona correttamente sull'host locale (sulla mia intranet). Ma non appena lo metto su un server che è su Internet, ottengo l'errore mostrato di seguito dopo aver fatto clic su qualsiasi menu.Solo i controlli del contenuto sono consentiti direttamente in una pagina di contenuto che contiene controlli del contenuto in ASP.NET

Only Content controls are allowed directly in a content page that contains Content controls.

screenshot

+0

Puoi provare a liberarti di quello spazio ... Forse c'è spazio extra e viene trattato come un letterale – nunespascal

+0

Ciao, ho controllato con questo. Ma poiché sta lavorando sull'host locale, affronta il problema del bit per trovare la soluzione. –

risposta

21

doppio o triplo controllo la vostra apertura e chiusura tag contenuti per le vostre pagine figlio.

confermare che

  • sono in atto
  • siano state digitate correttamente
  • avere un ID
  • hanno runat = "server"
  • avere la ContentPlaceHolderID corretta
9

Stavo affrontando un problema simile. Stai circondando il tuo codice con il tag "content"?

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

E avere tag di contenuto separati per le sezioni. Un contenuto principale per la dichiarazione dell'intestazione e un contenuto del corpo per la dichiarazione del corpo.

+2

Sì, ho un contenuto separato per la testa e il corpo. Anche il mio codice è all'interno del content place. Ancora sta dando lo stesso errore. –

5

Un'altra possibilità sono le terminazioni di linea. Ho copiato una versione precedente del codice dal controllo del codice sorgente che ha forzato le terminazioni di linea stile Unix. Poiché non era un checkout, non convertiva automaticamente le terminazioni di linea in stile DOS/Windows. Il messaggio di errore era l'errore "Solo i controlli di contenuto sono consentiti direttamente ..." anche se la pagina è stata posizionata correttamente. Sembra che la mancanza di interruzioni di riga in stile Windows abbia causato il fallimento del parser ASPX.

Sono stato in grado di risolverlo incollando il codice in una riga che termina l'editor agnostico (che ha provocato la normalizzazione delle terminazioni di linea in stile Windows), copiandolo nuovamente negli Appunti e incollandolo in Visual Studio, dopo di che la pagina è stata elaborata senza errori.

Nel caso presentato da Tripati Subudhi nella domanda, è del tutto possibile che qualcosa sul processo di distribuzione abbia utilizzato inavvertitamente desinenze di linee convertite allo stile Unix, portando all'errore.

+1

Questo era il mio problema. Stavo usando Visual Studio, quindi ho selezionato tutto per essere commentato e poi non commentato. Questo l'ha risolto per me. –

6

Un altro problema possibile è commenti HTML, avevo questi circonda un controllo Contenuto - credo ASP.NET converte in comandi letterali dietro le quinte - da qui l'errore i

2

Per me, non ha fatto così ho avuto un montaggio e una direttiva Pagina commentata:

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

Anche se ho avuto una direttiva pagina valida dopo, e non stavo usando System.Core per qualsiasi cosa. Dopo averli appena rimossi, è stato caricato bene.

6

Ho avuto esattamente lo stesso problema.Il problema è che ho avuto alcuni spazi dopo il tag contenuto di chiusura il

</asp:Content> 

Rimuovere tutti gli spazi, interruzioni di riga dopo l'ultima tag di chiusura.

+3

Questa è una buona ragione per abbandonare i moduli Web – Beanwah

3

un'altra potenziale causa di questo errore: tag con il caso errato.

modifica <asp:content>... a <asp:Content>... risolto il problema nel mio caso.

la causa del caso difettoso era la funzione in formato documento in Visual Studio 2012 (e 2013) con impostazioni predefinite. l'impostazione per questo può essere modificata in Strumenti-> Opzioni-> Editor di testo-> HTML (Web Forms) -> Formattazione: imposta la maiuscola del tag su 'come inserito' e lo studio non distruggerà più i tuoi file.

1

Per me erano due controlli di contenuto con lo stesso ID: il file era stato modificato all'esterno di Visual Studio, quindi non è stato possibile rinominare automaticamente l'ID duplicato. Questo errore fuorviante stava evidenziando la prima immagine all'interno del secondo controllo contenuto con lo stesso ID del primo: che inseguimento selvaggio!

La copia dell'intera pagina e la ripubblicazione su se stessa l'hanno risolta, poiché VS a quel punto rinominava l'ID di controllo duplicato.

0

Nel mio caso ho dimenticato di aggiungere il riferimento all'assembly AjaxControlToolkit.dll.

Quando aggiungo il riferimento, l'errore è scomparso.

0

in SharePoint è accaduto poiché un pageLayout non è stato pubblicato.

Problemi correlati