我正在试图建立网站项目在Visual Studio 2010时,下面的错误:ASP.NET错误:页面Y.ascx不能使用用户控制X.ascx
页“/网址/controls/C2.ascx'无法使用用户控件'/WebSite/controls/C1.ascx',因为它在web.config中注册并与页面位于同一目录中。
我有2个Web用户控件:
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>
当试图构建项目时,我收到了顶部的错误消息。我意识到这个问题可以通过添加另一个注册指令C2.ascx固定...:
<%@ Register Src="~/controls/C1.ascx" TagPrefix="ctl" TagName="C1" %>
...但我不知道是否有一个清晰的解决方案,为什么会收到错误在第一地点?
谢谢!
[在与页面相同的文件夹中使用用户控件]可能的重复(http://stackoverflow.com/questions/2964337/use-user-control-in-the-same-folder-as-the-page ) – M4N
为什么<%@ Register ...%>被认为是“不洁净”?似乎与在.cs文件顶部使用语句没有什么不同。 – mikemanne
只有当控件已经在web.config中为每个页面或Web用户控件注册时,才会认为这是不正确的,这是我的情况。 – michalstanko