如何使用我的asp.net自定义控件(扩展System.Web.UI.UserControl)?

如何使用我的asp.net自定义控件(扩展System.Web.UI.UserControl)?,asp.net,user-controls,custom-controls,Asp.net,User Controls,Custom Controls,我使用的是asp.NET4,VS2010 我有一个网站项目,有一些页面(apsx)和网络服务(asmx) 我正在尝试使用项目中包含的自定义UserControl WebControl/UserControl是一个普通的c#类,没有aspx/ascx/asmx。此类的配置如下所示: public class DropDownMenu : UserControl 这意味着它扩展了System.Web.UI.UserControl,并覆盖了一组UserControl 方法,如OnPreRender、

我使用的是asp.NET4,VS2010

我有一个网站项目,有一些页面(apsx)和网络服务(asmx)

我正在尝试使用项目中包含的自定义UserControl

WebControl/UserControl是一个普通的c#类,没有aspx/ascx/asmx。此类的配置如下所示:

public class DropDownMenu : UserControl
这意味着它扩展了System.Web.UI.UserControl,并覆盖了一组UserControl 方法,如OnPreRender、OnLoad等

这个文件可以编译,但我没有成功地在aspx文件中使用它

我尝试了以下方法:

  <%@ Register TagPrefix="My" TagName="DropDownMenu"  
Src="DropDownMenu.cs"%>

但这是行不通的。我收到一个运行时错误:

文件“src”在此处无效,因为它不公开类型

伊维也试过了

<%@ Register Assembly="DropDownMenu" Namespace="MyNameSpace" TagPrefix="My" %>

我收到了一个运行时错误

无法加载文件或程序集“DropDownMenu”或其依赖项之一。系统找不到指定的文件

有人知道如何将我的类用作asp标记/控件吗? 我只想在aspx页面中使用以下内容:

注册:

<%@ Register TagPrefix="My" Assembly="AssemblyName" NameSpace="NameSpace"%>
注册:

<%@ Register TagPrefix="My" Assembly="AssemblyName" NameSpace="NameSpace"%>

我试过这个,我在@meyou上面写过,
DropDownMenu
是定义控件的程序集的名称吗?@meyou,你的解决方案的结构是什么?如果您的所有代码都位于一个web项目中,那么程序集很可能与项目本身具有相同的名称。但是我只能使用下拉菜单,尽管我在同一个文件中有很多类。为什么会这样?@meyou,只有表示控件的类(我相信是从
Control
class继承的)才可以在标记中使用。用法是一样的:
。我试过了,我在@meyou上面写过,
下拉菜单是定义控件的程序集的名称吗?@meyou,你的解决方案的结构是什么?如果您的所有代码都位于一个web项目中,那么程序集很可能与项目本身具有相同的名称。但是我只能使用下拉菜单,尽管我在同一个文件中有很多类。为什么会这样?@meyou,只有表示控件的类(我相信是从
Control
class继承的)才可以在标记中使用。用法相同: