不执行自定义控件库的代码

时间:2013-09-09 15:19:24

标签: c# asp.net custom-controls code-behind

我创建了一个自定义用户控件库。我使用Visual Studio 2012创建了一个空Web应用程序,并在其中放置了一个自定义用户控件,其中ascx文件中包含以下顶行。

<%@ Control Language="C#" ClassName="MyControls.HelloWorld" AutoEventWireup="true" CodeBehind="HelloWorld.ascx.cs" Inherits="MyControls.Controls.HelloWorld" %>

显式声明ClassName的目的是使主网站应用程序可以加载/使用自定义控件。当然,文件后面有一个代码。无论它有什么价值,都有一个DevExpress回调面板,在事件处理程序后面有一个C#代码。

我使用

构建并发布MyControls库
  • 发布时预编译
  • (configure)将所有输出合并到单个程序集
  • (无所谓,但我已经“视为库组件......”。
  • 我将名称设置为MyControlsLib

(为什么选中,因为选中或未选中,存在同样的问题。)

我创建了一个网站MyWebsite,并添加了对MyControls和MyControlsLib的引用。

然后我使用LoadControl并指定控件的类型:

typeof (MyControls.HelloWorld)

然后我继续显示用户控件。这很好,没问题。

问题: 问题是后面的代码没有执行。我收到错误消息:

The target $#39;ctl00$ctl00$cpDynamic$dpopHelloWorld$uc$cpHelloWorld&#39; for the callback could not be found or did not implement ICallbackEventandler.

这个神秘的错误消息基本上表明运行时环境无法找到文件后面的代码。我正在使用IE10(在Windows 7下)从Visual Studio中使用调试环境(F5)进行测试。我设置了一个断点,我没有打到它。

我确实需要两个引用,因为MyControls.dll中的代码与我在主应用程序中使用的用户控件无关。 MyControlsLib.dll包含用户控件。

虽然实际的文章,我使用的方法是另一篇MSDN文章,但大纲类似here

为什么主要的asp.net网站没有找到代码?

0 个答案:

没有答案