首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LoadControl导致解析器错误

LoadControl导致解析器错误
EN

Stack Overflow用户
提问于 2010-01-27 01:30:13
回答 3查看 1.3K关注 0票数 0

我们使用LoadControl动态地将ascx文件加载到占位符控件中。代码隐藏看起来非常简单:

代码语言:javascript
复制
child = base.LoadControl(manufacturerTemplate.TemplatePath);
this.ManufacturerPlaceHolder.Controls.Add(child);

控件标题如下所示:

代码语言:javascript
复制
<%@ Control Language="C#" AutoEventWireup="true" Inherits="MyNamespace.MyControl" CodeBehind="MyControl.ascx.cs" %>

我已经核实了所有的拼写和编译。它在ASP.NET开发web服务器中运行良好。但是,当我将它上传到IIS主机时,我会收到以下错误:

解析器错误:无法加载类型'MyNamespace.MyControl‘。

代码背后编译时没有错误。这实际上是对另一个控件的代码隐藏的复制。(验证拼写是否准确)我尝试过的一件事是修改@Control指令,以指向第二个控件的代码背后(共享相同功能)....it工作得非常好。

我尝试过的其他一些事情:

Permissions

  • Restarting
  • 文件系统IIS
    • 清除ASP.NET临时文件夹

因此,在这一点上,我不知道为什么我不能使用代码背后,我试图添加将无法工作。我可以把它指向另一个类的代码背后,它运行得很好。(在更改"inherits“值之后),所以我只能假设它是一个编译问题。但它的构建是正确的,没有错误。

我忘了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-01-28 16:23:45

我发现了问题。这个项目是一个"Web应用程序“而不是一个”网站“,所以它不仅需要编译,而且我必须部署网站的程序集。

票数 0
EN

Stack Overflow用户

发布于 2010-01-27 01:45:51

将控件标记更改为

代码语言:javascript
复制
 <%@ Control ClassName="MyControl" Language="C#" AutoEventWireup="true" CodeFile="MyControl.ascx.cs" Inherits="MyControl" %> 

在您使用控件的ASPX页面上,添加以下代码

代码语言:javascript
复制
<%@ Reference Control="~/path/to/control/MyControl.ascx" %>

在后面的代码中使用以下内容

代码语言:javascript
复制
MyControl controlObject= (MyControl)LoadControl("~/path/to/control/MyControl.ascx");
this.Controls.Add(controlObject);
票数 1
EN

Stack Overflow用户

发布于 2010-01-27 02:05:07

一些想法:

确保完全清除和重新生成application.

  • Ensure,确保在发布应用程序时删除(而不是替换!)所有现有文件.

  • 确保,如果控件位于从该

  • 引用的子文件夹或目录中,则该控件的dll位于bin文件夹.

中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2143977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档