无法查看新的asp.net用户控件

无法查看新的asp.net用户控件,asp.net,user-controls,Asp.net,User Controls,我现在感觉自己像个白痴,但我一辈子都不明白为什么我不能从asp.net网页中调用用户控件。我仍在学习asp.net,但在谷歌上搜索时找不到任何信息 我试图在用户按下linkbutton时加载页面上的特定控件。因此,我通过右键单击菜单创建了一个空用户控件: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %> 生成一

我现在感觉自己像个白痴,但我一辈子都不明白为什么我不能从asp.net网页中调用用户控件。我仍在学习asp.net,但在谷歌上搜索时找不到任何信息

我试图在用户按下linkbutton时加载页面上的特定控件。因此,我通过右键单击菜单创建了一个空用户控件:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs" Inherits="WebUserControl" %>

生成一个“类型或命名空间无效”。为什么我的asp.net webform页面都不能将该控件添加到作用域中?

必须将新控件添加到网站的
Web.config
文件中

<configuration>
  <system.web>
    <pages>
      <controls>
        <add tagPrefix="my"
             tagName="WebUserControl"
             src="~/WebUserControl.ascx"/>
      </controls>
    </pages>
  </system.web>
</configuration>

新控件必须添加到站点的
Web.config
文件中

<configuration>
  <system.web>
    <pages>
      <controls>
        <add tagPrefix="my"
             tagName="WebUserControl"
             src="~/WebUserControl.ascx"/>
      </controls>
    </pages>
  </system.web>
</configuration>

除了在web.config中逐个注册它们之外,还可以在引用控件的标记文件源中使用
指令


或者,您可以将控件移动到DLL中,并通过引用web.config中的程序集来包含所有控件(不过需要一些额外的工作)。

除了在web.config中逐个注册控件外,还可以在引用控件的标记文件源中使用
指令


或者,您可以将控件移动到DLL中,并通过引用web.config中的程序集来包含所有控件(不过需要一些额外的工作)。

这是网站项目还是web应用程序项目?你想从哪里使用控件?也就是说,您试图创建用户控件的第二个代码段中的代码在哪里?首先,我假设这是一个输入错误:WebUserControl,而不是WebUserControls。是的,我用s错误地键入了它,但当它只是WebUserControl时,同样存在。这是一个Web站点项目(但不知道Web站点和Web应用程序之间的区别)。这是一个Web站点项目还是一个Web应用程序项目?你想从哪里使用控件?也就是说,您试图创建用户控件的第二个代码段中的代码在哪里?首先,我假设这是一个输入错误:WebUserControl,而不是WebUserControls。是的,我用s错误地键入了它,但当它只是WebUserControl时,同样存在。这是一个网站项目(但不知道网站和Web应用程序之间的区别)。这似乎已经解决了它,谢谢!我的控制目录中的所有控件都有这样做的方法吗?还是我必须单独执行每个ascx?恐怕每个控件都有。实际上,我似乎对此有问题。它在aspx文件中运行良好(我可以添加标记,但在aspx.cs文件的代码中,它无法识别WebUserControl类型。我假设您使用的是Visual Studio,这听起来可能与您使用的项目类型有关。如果您创建了“ASP.NET网站”(file/New/Web Site),则一切都应该正常。另一种,“ASP.NET Web应用程序”(文件/新建/项目),是为支持Visual Studio 2003样式的ASP.NET开发而设计的,如果没有特定的原因,它不太可能是您想要使用的。是的,我使用的是VS2008,我的项目只是一个网站,而不是web应用程序。即使添加了一个似乎已经修复了它的应用程序,谢谢!是否有方法为我的控件目录中的所有控件执行此操作,或者必须单独执行每个ascx吗?恐怕每个都是。实际上,我似乎对此有问题。它在aspx文件中运行良好(我可以添加标记,但在aspx.cs文件的代码中,它无法识别WebUserControl类型。我假设您使用的是Visual Studio,这听起来可能与您使用的项目类型有关。如果您创建了一个“ASP.NET网站”(file/New/Web Site),那么一切都应该正常。另一种类型是“ASP.NET Web应用程序”(File/New/Project),旨在启用Visual Studio 2003样式的ASP.NET开发,如果没有特定原因,它不太可能是您想要使用的。是的,我使用的是VS2008,我的项目只是一个网站,而不是一个web应用程序。甚至添加
<my:WebUserControl runat="server" ID="MyWebUserControl" />