如何在源代码视图中使用Asp.NET自定义WebControl

如何在源代码视图中使用Asp.NET自定义WebControl,asp.net,vb.net,Asp.net,Vb.net,我在要使用标签控件的项目中创建了一个标签控件,该控件继承自CustomLabel.vb中的Label WebControl。我希望在源代码视图中使用以下代码: <custom:SettingLabel ID="lblHelloWorld" runat="server"/> 您只需将此添加到页面顶部即可。你不需要建立一个单独的图书馆或任何东西 <%@ Register Assembly="Assembly" Namespace="Assembly.Controls" TagPr

我在要使用标签控件的项目中创建了一个标签控件,该控件继承自CustomLabel.vb中的Label WebControl。我希望在源代码视图中使用以下代码:

<custom:SettingLabel ID="lblHelloWorld" runat="server"/>

您只需将此添加到页面顶部即可。你不需要建立一个单独的图书馆或任何东西

<%@ Register Assembly="Assembly" Namespace="Assembly.Controls" TagPrefix="custom" %>

您只需将其添加到页面顶部即可。你不需要建立一个单独的图书馆或任何东西

<%@ Register Assembly="Assembly" Namespace="Assembly.Controls" TagPrefix="custom" %>

我认为您可以在web.config或page指令中注册程序集,即使它位于同一个项目中

<add tagPrefix="MyControls" namespace="MyProgram.Controls.MyControl" assembly="MyProgram.Controls.MyControl" tagName="MyControl" />

我认为您可以在web.config或page指令中注册程序集,即使它位于同一个项目中

<add tagPrefix="MyControls" namespace="MyProgram.Controls.MyControl" assembly="MyProgram.Controls.MyControl" tagName="MyControl" />

这里的问题是您没有考虑默认名称空间

尝试使用以下指令:

<%@ Register Assembly="InternetLending" Namespace="InternetLending.InternetLending.Controls" TagPrefix="custom" %>
<%@ Register Assembly="InternetLending" Namespace="InternetLending.Controls" TagPrefix="custom" %>
然后使用以下指令:

<%@ Register Assembly="InternetLending" Namespace="InternetLending.InternetLending.Controls" TagPrefix="custom" %>
<%@ Register Assembly="InternetLending" Namespace="InternetLending.Controls" TagPrefix="custom" %>


请参阅:了解更多信息。

这里的问题是您没有考虑默认名称空间

尝试使用以下指令:

<%@ Register Assembly="InternetLending" Namespace="InternetLending.InternetLending.Controls" TagPrefix="custom" %>
<%@ Register Assembly="InternetLending" Namespace="InternetLending.Controls" TagPrefix="custom" %>
然后使用以下指令:

<%@ Register Assembly="InternetLending" Namespace="InternetLending.InternetLending.Controls" TagPrefix="custom" %>
<%@ Register Assembly="InternetLending" Namespace="InternetLending.Controls" TagPrefix="custom" %>



请参阅:了解更多信息。

您说,在添加该声明后,我可以在SourceView中使用声明性语法将
SettingLabel
添加为控件?不起作用,这是错误:
无法加载文件或程序集“InternetLending.Controls.SettingLabel”或其依赖项之一。系统找不到指定的文件。
这是我的声明:
程序集应该只是项目程序集的名称,命名空间应该是控件所在的命名空间。所以在本例中,我猜您的项目名为“InternetLending”,所以您希望它是Assembly=“InternetLending”Namespace=“InternetLending.Controls”。您可以粘贴您现在拥有的吗?您说,在添加该声明之后,我可以使用声明性语法在SourceView中将
SettingLabel
添加为控件,但不起作用,这是错误:
无法加载文件或程序集“InternetLending.Controls.SettingLabel”或其依赖项之一。系统找不到指定的文件。
这是我的声明:
程序集应该只是项目程序集的名称,命名空间应该是控件所在的命名空间。所以在本例中,我猜您的项目名为“InternetLending”,所以您希望它是Assembly=“InternetLending”Namespace=“InternetLending.Controls”。您可以粘贴您现在拥有的吗?不起作用,错误消息是:
分析器错误消息:指令缺少“src”属性。
尝试删除
标记名
属性。无效,错误消息是:
分析器错误消息:该指令缺少“src”属性。
尝试删除
标记名
属性。我以前也尝试过这些属性,但不起作用。错误消息与RossiDead应答下的注释消息相同。您确定吗,因为根据您的代码示例,
Settinglabel
控件的命名空间为:
InternetLending.InternetLending.Controls
。这意味着register指令如下:
。当然,上面的内容取决于程序集名称和根命名空间是否为
InternetLending
。你可以通过你的项目属性的“应用程序”选项卡进行检查。我以前也尝试过这些方法,但都不起作用。错误消息与RossiDead应答下的注释消息相同。您确定吗,因为根据您的代码示例,
Settinglabel
控件的命名空间为:
InternetLending.InternetLending.Controls
。这意味着register指令如下:
。当然,上面的内容取决于程序集名称和根命名空间是否为
InternetLending
。您可以通过项目属性的“应用程序”选项卡进行检查。