Ответ 1
Исправление для этой проблемы доступно сейчас. http://support.microsoft.com/kb/2750149 для окон 8 и http://support.microsoft.com/kb/2750147 для Windows 7.
Я обновляю большой проект веб-сайта из 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.
Исправление для этой проблемы доступно сейчас. http://support.microsoft.com/kb/2750149 для окон 8 и http://support.microsoft.com/kb/2750147 для Windows 7.
Microsoft подтвердила, что это ошибка. Они создадут для него исправление и включают исправление в следующий пакет обновления. Это не похоже на то, что это высокий приоритет, поэтому, вероятно, потребуется некоторое время для исправления.
2012-10-01 Обновление: Поддержка Microsoft связалась со мной и сказала, что это будет исправлено в ближайшем горячем исправлении "скоро".
2012-11-28 Обновление: Обновление Visual Studio 2012 1 не устраняет проблему.
Для частичного решения вы можете перенести этот код <th>
front-end на внутренний код.
Это должно заботиться о проблеме компиляции.
Не знаю, что делать с тегами <tbody>
.
Если вы просматриваете HTML-страницу своей страницы в ее нынешнем виде, я сомневаюсь, что они все равно будут отображаться.
Вот почему.
Простое решение удаляет теги tbody и thead, для меня это работает.
У меня нет VS 2012; прямо сейчас, но вы должны попробовать следующие вещи.
Да Его ошибка в Visual Studio 2012, применение патча из указанной ниже ссылки работало на меня: http://www.microsoft.com/en-us/download/details.aspx?id=36359
Удаление тега не решит его для текущего/мигрирующего запущенного проекта. Таким образом, мы должны изменить каждую страницу aspx.