我正在将一个大型网站项目从Visual Studio 2010升级到2012年。在我的项目中,我有一个具有runat =“server”属性的表格元素。其中许多都有其中的元素。当我在2012年打开它,并尝试构建,我得到以下错误:
Value of type 'System.Web.UI.HtmlControls.HtmlGenericControl' cannot be converted to 'System.Web.UI.HtmlControls.HtmlTableRow'
删除runat =“server”属性或注释掉thead来修复它。注释掉只有thead中的tr元素不会修复它。这是一个简化的例子,重现了这个问题:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test.aspx.vb" Inherits="Test" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <table id="Example" runat="server"> <thead> <tr> <th>test</th> </tr> </thead> </table> </div> </form> </body> </html>
表单元素打开时发生错误。
如何解决这个问题,而不用做以下任一操作?
>删除runat =“server”属性
>删除该元素
>将其更改为一个asp:table元素
奖金为谁解释2012年正在做的不同是造成这个的人。
更新:
只有在网站上,Web应用中才会出现此问题。
该项目实际上并没有升级,只是我的开发环境。在这两种情况下,我使用的是4.0框架
我尝试使用4.5框架,但没有帮助。
2012年9月10日
我有一个微软支持的开放案例。他们的开发团队正在研究它。
2012年10月24日:
由于.NET 4.5替代了4.0,所以我也不能在VS 2010中编译。我遇到的问题纯粹是.NET – 而不是Visual Studio。
解决方法
修复此问题现在可用。
适用于Windows 7和Windows 7平台的 http://support.microsoft.com/kb/2750149。
适用于Windows 7和Windows 7平台的 http://support.microsoft.com/kb/2750149。