大規模な Web サイト プロジェクトを Visual Studio 2010 から 2012 にアップグレードしています。プロジェクト全体で、属性を持つtable
要素があります。runat="server"
これらの多くは、thead
内部に要素を持っています。2012年にそれを開いてビルドしようとすると、次のエラーが発生します。
Value of type 'System.Web.UI.HtmlControls.HtmlGenericControl' cannot be converted to 'System.Web.UI.HtmlControls.HtmlTableRow'
属性を削除するrunat="server"
か、コメントアウトするとthead
修正されます。tr
内の要素だけをコメントアウトしてthead
も修正されません。問題を再現する簡単な例を次に示します。
<%@ 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>
table
要素が開く場所でエラーが発生します。
次のいずれかを実行せずにこれを修正するにはどうすればよいですか?
runat="server"
属性の削除thead
要素の削除asp:table
それを要素に変更する
これを引き起こしている2012年のやり方が違うことを説明する人へのボーナス投票。
アップデート:
この問題は Webアプリでは発生せず、Web サイトでのみ発生します。
プロジェクトは実際にはアップグレードされません。私の開発環境だけです。どちらの場合も、4.0 フレームワークを使用しています
4.5 フレームワークを使用してみましたが、役に立ちませんでした。
2012 年 9 月 10 日: Microsoft サポートで未解決のケースがあります。彼らの開発チームはそれを調査しています。
2012 年 10 月 24 日: .NET 4.5 が 4.0 を置き換えたため、VS 2010 でもコンパイルできなくなりました。私が経験している問題は純粋に .NET であり、Visual Studio ではありません。