从另一个项目中使用用户控件

3

我在一个项目中建立了一个用户控件,我想在另一个项目中重复使用它。我曾经见过通过添加对原始项目的引用并通过以下方式注册控件成功实现类似尝试:

<%@ Register Assembly="AssemblyName" Namespace="AssemblyName.Namespace" TagPrefix="xxx" %>

我做过类似的事情,编译原始项目并在随后的项目中引用它。控件内部有一个 asp:Repeater 控件。然后我像上面那样注册了我的控件,并将控件放在我的页面上(控件有一个名为 prop 的字符串属性)。

<xxx:ControlName ID="ControlId" runat="server" prop="21" />

然而,当我在后续项目中启动控件时,会出现空引用异常并且应用程序会停止响应。我做错了吗?是否必须在后续项目中有一个.ascx文件?
感谢任何和所有的帮助。
谢谢, pbr
1个回答

3
作为对此的跟进:
我进行了进一步的研究,发现标记语言(.ascx页面上的材料)不会编译到程序集中。因此,如果控件涉及任何标记,则必须在调用它的项目中拥有.ascx文件。
在属性对话框中,我设置了一个后建事件,将.ascx文件复制到后续项目的Controls文件夹中。我像引用任何普通用户控件一样引用它,一切正常运行。
希望这可以帮助那些遇到类似问题的人, pbr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接