sto ottenendo l'errore sotto quando si cerca di costruire il progetto sito web in Visual Studio 2010:errore di ASP.NET: La pagina Y.ascx non può usare il controllo utente X.ascx
La pagina '/ WebSite /controls/C2.ascx 'non può usare il controllo utente' /WebSite/controls/C1.ascx ', perché è registrato in web.config e risiede nella stessa directory della pagina.
Ho 2 controlli utente web:
controls/C1.ascx
controls/C2.ascx
I controlli sono stati registrati nel web.config:
<configuration>
<system.web>
<pages>
<controls>
<add src="~/controls/C1.ascx" tagPrefix="my" tagName="C1"/>
<add src="~/controls/C2.ascx" tagPrefix="my" tagName="C2"/>
</controls>
</pages>
</system.web>
</configuration>
C1.ascx contiene solo un HTML statico, C2.ascx sta provando per includere C1:
C1.ascx contiene solo un semplice codice HTML statico semplice. C2.ascx sta cercando di includere C1.ascx:
<%@ Control Language="VB" %>
<my:C1 runat="server" />
<p>Hello from C2</p>
Quando si cerca di costruire il progetto, sto ottenendo il messaggio di errore nella parte superiore. Mi rendo conto che questo problema può essere risolto con l'aggiunta di un'altra direttiva Registra per C2.ascx ...:
<%@ Register Src="~/controls/C1.ascx" TagPrefix="ctl" TagName="C1" %>
... ma mi chiedo se c'è una soluzione più pulita e perché sto ottenendo l'errore nel primo posto?
Grazie!
possibile duplicato di [Usa controllo utente nella stessa cartella della pagina] (http://stackoverflow.com/questions/2964337/use-user-control-in-the-same-folder-as-the-page) – M4N
C'è una ragione per cui <% @ Register ...%> è considerato "impuro"? Sembra diverso dall'aver usato le istruzioni nella parte superiore di un file .cs. – mikemanne
È considerato solo non pulito quando il controllo è già registrato in web.config per ogni pagina o controllo utente Web, che è il mio caso. – michalstanko