Я обновляю большой проект веб-сайта из 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 году по-другому, что вызывает это.
UPDATE:
Проблема не возникает в веб-приложении, только на веб-сайте.
Проект фактически не обновляется, а только моя среда разработки. В обоих случаях я использую фреймворк 4.0
Я попытался использовать фреймворк 4.5, но это не помогло.
10 сентября 2012 года: У меня есть открытый случай с поддержкой Microsoft. Их команда разработчиков изучает его.
Октябрь 24, 2012: Поскольку .NET 4.5 заменяет 4.0, я больше не могу компилировать в VS 2010. Проблема, которую я испытываю, - это чисто .NET - не Visual Studio.