При попытке создать проект веб-сайта в Visual Studio 2010 появляется сообщение об ошибке:
Страница '/WebSite/controls/C2.ascx' не может использовать пользовательский элемент управления '/WebSite/controls/C1.ascx', поскольку она зарегистрирована в web.config и находится в том же каталоге, что и стр.
У меня есть 2 элемента управления в Интернете:
controls/C1.ascx
controls/C2.ascx
Элементы управления были зарегистрированы в 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 содержит только статический HTML, C2.ascx пытается включить C1:
C1.ascx содержит простой статический простой HTML. C2.ascx пытается включить C1.ascx:
<%@ Control Language="VB" %>
<my:C1 runat="server" />
<p>Hello from C2</p>
При попытке построить проект я получаю сообщение об ошибке вверху. Я понимаю, что эту проблему можно исправить, добавив еще одну директиву Register в C2.ascx ...:
<%@ Register Src="~/controls/C1.ascx" TagPrefix="ctl" TagName="C1" %>
... но мне интересно, есть ли более чистое решение и почему я вообще получаю ошибку?