Ответ 1
Это выглядит как недокументированное нарушение для веб-сайтов после установки Visual Studio 2012 и .NET 4.5. Я не могу найти ссылки на это в изменениях .NET 4.5, задокументированных Microsoft: http://msdn.microsoft.com/en-us/library/hh367887.aspx
После исследования проблемы появляются возможные решения для разбитого тега таблицы.
-
Удалите Visual Studio 2012 и .NET 4.5. Ссылка: Таблица HTML на стороне сервера с tbody, не компилируемым в ASP.NET 4.5
Я понимаю, что это не обязательно идеальное решение, но если ни одно из других решений, приведенных ниже, не может быть легко реализовано, у вас не будет другого выбора. Кроме того, только потому, что это первая запись, это не то, что я рекомендую в качестве основного решения. Это просто вариант.
-
Преобразуйте свой веб-сайт в веб-приложение. Таблица с runat = "server" появляется для компиляции файла при использовании веб-приложения.
Для этого преобразования есть дополнительные преимущества, такие как упрощение написания модульных тестов в отношении кода внутри вашего веб-приложения. Тем не менее, вам нужно будет оценить работу, связанную с переходом с веб-сайта на веб-приложение, и вам нужно будет убедить своих боссов и коллег, которые вам нужны, чтобы внести это изменение.
-
Проверьте код сервера (код за страницей/элементом управления) для таблицы. Используете ли вы элемент управления в коде на стороне сервера? Если нет, удалите runat = "server". Страница тогда компилируется просто отлично.
<table id="TestTable"> <colgroup> <col width="30%" /> <col width="70%" /> </colgroup> <thead> <tr> <td>Sample header 1</td> <td>Sample header 2</td> </tr> </thead> <tbody> <tr> <td>Sample cell 1</td> <td>Sample cell 2</td> </tr> <tr> <td>Sample cell 3</td> <td>Sample cell 4</td> </tr> </tbody> </table>
-
Вы используете элемент управления в коде на стороне сервера. Удалите теги col и colgroup и переместите стили столбцов в td или th ячеек первой строки таблицы. (Ширина и стили столбцов наследуются от первой строки вниз по таблице, поэтому, например, установка ширины = "40%" в первой ячейке, делает все ячейки в этом столбце шириной = "40%".) Удалите тег thead и измените все td-ячейки в таблице на ячейки th (table header). Удалите тег tbody.
<table id="TestTable" runat="server"> <tr> <th width="30%">Sample header 1</td> <th width="70%">Sample header 2</td> </tr> <tr> <td>Sample cell 1</td> <td>Sample cell 2</td> </tr> <tr> <td>Sample cell 3</td> <td>Sample cell 4</td> </tr> </table>
-
Преобразуйте в тег
<asp:Table>
с помощью элементов управления<asp:TableHeaderRow>
и<asp:TableRow>
. Ссылка: Как создать thead и tbody в таблице ASP.NET?