在代码中使用ASP.NET用户控件会导致“在未引用的程序集中定义”异常

时间:2010-12-09 09:49:23

标签: asp.net user-controls

我有一个用户控件,其中包含许多其他用户控件。

我需要以编程方式访问包含外部控件的页面中某个内部控件的某些属性。

因此,Page包含Outer Control包含Inner Control,而Page需要访问Inner Control的属性。

我当然可以在外部控件中创建属性,它返回内部控件中的相应属性,但这将是乏味的。

我想要做的是向Outer Control添加一个属性,该属性返回Inner Control本身,以便Page可以直接访问其属性:

(在外部控制的代码隐藏中):

public UserControls_InnerControl InnerControl { get { return this.ctlInnerControl; } }

但是当我建立网站时,我得到了:

“UserControls_InnerControl”类型是在未引用的程序集中定义的。您必须添加对程序集“App_Web_fc5rstgb,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null”的引用。

到底是什么?我一直以编程方式使用用户控件的实例(例如,将它们动态添加到其他控件),我以前从未见过这个。

我能做些什么吗?

编辑:有趣的是,它不是OuterControl中的属性,它暴露了导致异常的InnerControl。它是Page中的代码,它使用这个属性产生错误。

1 个答案:

答案 0 :(得分:1)

尝试在访问内部控件的页面上添加以下内容:

<%@ Register Src =“UserControls_InnerControl.ascx”TagName =“uc”TagPrefix =“uc1”%>
<%@ Reference Control =“〜/ InnerControl.ascx”%>

根据您的应用修复路径。

此致