ASP.Net错误 - 类型与控件的类型不兼容。

7

我有一个使用VS2012 web版创建的网站,

运行着一个VB.net asp网站,

在VS2012的调试/发布模式下,它能够编译,并且一切运作良好,

但是,当我将其上传到服务器(Windows服务器2008 R2)时,出现了以下错误:

The base class includes the field 'html', but its type (System.Web.UI.HtmlControls.HtmlElement) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlGenericControl).


Line 2:  
Line 3:  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Line 4:  <html id="html" xmlns="http://www.w3.org/1999/xhtml" dir="ltr" runat="server">
Line 5:  <head id="Head1" runat="server">
Line 6:    <title></title>

我在网上搜索了一下,找到了这个链接:VS 2010: Value of type 'System.Web.UI.HtmlControls.HtmlGenericControl' cannot be converted to 'System.Web.UI.HtmlControls.HtmlTableRow'

我安装了它,但是没有帮助。

我创建的这个网站是从另一个vb.net项目重新创建的,所以我使用了来自旧项目的web.config文件,也许跟这有关,这个XML中没有“assembly”属性。

其他页面(那个html标签在主页上运行)工作得很好。


没有...已经检查过了... - Matan L
这是一个网站项目还是一个网络应用程序项目? - Michael Liu
请问您能否发布整个页面的代码? - Brian Ogden
这是一个网站项目。 - Matan L
也许相关?https://dev59.com/nWct5IYBdhLWcg3wXsMy - the_lotus
显示剩余8条评论
4个回答

6

好的,

在尝试了很多无效的方法后,我找到了一个解决方案,虽然我不喜欢这个解决方案,但它有效。

我进入了page.designer.vb文件,并查找了生成的“html”和“Head1”属性,

我将它们的类型替换为System.Web.UI.HtmlControls.HtmlGenericControl

之后,它就可以工作了。

奇怪的错误,其他任何东西(包括其他帖子中提到的“热修复”)都没有帮助。

希望这能帮助某个人。


你找到为什么服务器和VS上的行为不同的原因了吗? - IvanH
顺便说一下:我之前也需要在 C# 应用程序中做这件事。谢谢 - 你帮我节省了大量的时间! - Edward
我解决这个问题的方法是右键点击解决方案>清理,然后删除项目下的 bin 文件夹并重新构建解决方案。据我所知,不应手动编辑 *designer.cs 文件,因此我想在这里补充一下。我知道这是一个旧帖子,但既然我来到这里,其他人也可能会遇到类似的问题。 - NetworkMonkey

1
一些情况下,即使类型匹配,设计文件和标记文件仍然不同步。
我更改了有问题的控件的ID属性,保存并在标记文件中进行了重建。 然后我将其改回原始ID,保存并重新构建。
问题解决了!

这种情况发生在我同时使用两个不同的IDE时。我所做的就是关闭另一个IDE,然后用Visual Studio打开解决方案并保存aspx设计文件。它自动生成了designer.cs文件,之后一切都很顺利。 - Niklas

0

这是一个奇怪的问题,我不确定是否有适当的解决方案,但对我有效的方法是简单地更改控件ID。然后 designer.cs 文件被更改,一切都正常工作了。


0

我通过清理 解决方案/项目 -> 重新构建


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