【问题标题】:ASP.NET Controls from different assembly来自不同程序集的 ASP.NET 控件
【发布时间】:2010-06-30 15:30:59
【问题描述】:

我的“GeneralControls”程序集(经典 DLL)中有一些控件,它们由 .ascx 文件(以及它们的代码隐藏)组成。

我正在引用该 DLL,并将控件用作:

<%@ Register Tagprefix="g" Assembly="GeneralControls" Namespace="GeneralControls.UI" %>


<g:FooterControl ID="Footer" runat="server" />

但是,FooterControl 包含一些其他控件(标签等),而那些从代码隐藏中使用的控件会抛出 NullArgumentException。共享 ascx 控件的正确方法是什么?提前致谢。

【问题讨论】:

    标签: asp.net code-behind ascx


    【解决方案1】:

    用户控件 (.ascx) 必须存在于为其提供服务的 Web 项目中。您不能将它们移动到另一个程序集以进行共享。

    如果你想拥有共享控件,你需要一个没有声明模式的自定义服务器控件,所有子控件必须通过重写 CreateChildControls 等在代码中创建。

    http://support.microsoft.com/kb/893667(请参阅标题为“用户控件和自定义控件之间的基本区别是什么?”的部分)

    【讨论】:

    • 哦,我希望这不是真的,并且有一个解决方法,或者任何方法来编译 ascx.. 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 2018-10-15
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多