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

Pro*_*mer 1 asp.net user-controls custom-controls

我使用的是 asp.net 4,而不是 2010。

我有一个网站项目,其中包含一些分页(apsx)和Web服务(asmx)。

我正在尝试使用我的项目中包含的自定义用户控件。

WebControl/UserControl 是一个普通的 C# 类,没有 aspx/ascx/asmx。该类的配置如下:

public class DropDownMenu : UserControl
Run Code Online (Sandbox Code Playgroud)

这意味着它扩展了 System.Web.UI.UserControl,并且它重写了一堆 UserControls 方法,例如 OnPreRender、OnLoad 等。

该文件编译正常,但我没有成功在 aspx 文件中使用它。

我尝试了以下方法:

  <%@ Register TagPrefix="My" TagName="DropDownMenu"  
Src="DropDownMenu.cs"%>
Run Code Online (Sandbox Code Playgroud)

但这毫无作用。我收到运行时错误:

文件“src”在这里无效,因为它没有公开类型。

我也尝试过

<%@ Register Assembly="DropDownMenu" Namespace="MyNameSpace" TagPrefix="My" %>
Run Code Online (Sandbox Code Playgroud)

我收到运行时错误

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

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

<我的:下拉菜单>

And*_*rei 5

登记:

<%@ Register TagPrefix="My" Assembly="AssemblyName" NameSpace="NameSpace"%>
Run Code Online (Sandbox Code Playgroud)

这里AssemblyNameSpace包含定义控件类的程序集名称和命名空间,它们都不是控件本身的名称。请注意,程序集名称不包括文件扩展名。

用法:

<My:DropDownMenu ...>
Run Code Online (Sandbox Code Playgroud)