visual usa studio que proyecto migrar framework diferencias abrir asp.net visual-studio-2010 upgrade visual-studio-2012 web-site-project

asp.net - usa - ¿Cómo incluyo thead en un elemento de tabla runat="server"?



upgrade visual studio 2013 project to 2017 (6)

Estoy actualizando un proyecto de sitio web grande de Visual Studio 2010 a 2012. A lo largo de mi proyecto, tengo elementos de table con el atributo runat="server" . Muchos de estos tienen elementos de thead dentro de ellos. Cuando lo abro en 2012 y trato de compilar, aparece el siguiente error:

Value of type ''System.Web.UI.HtmlControls.HtmlGenericControl'' cannot be converted to ''System.Web.UI.HtmlControls.HtmlTableRow''

Quitar el atributo runat="server" o comentarlo thead arregla. Comentar solo el elemento tr dentro de thead no lo arregla. Aquí hay un ejemplo simplificado que reproduce el problema:

<%@ 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>

El error se produce cuando table abre el elemento de la table .

¿Cómo puedo solucionar esto sin hacer uno de los siguientes?

  • Eliminando el atributo runat="server"
  • Extracción del elemento thead
  • Cambiándolo a un elemento asp:table

El bono de hasta votar por alguien que explica lo que 2012 está haciendo de manera diferente es lo que está causando esto.

ACTUALIZAR:

El problema no ocurre en una aplicación web, solo en un sitio web.

El proyecto no se puede actualizar, solo mi entorno de desarrollo. En ambos casos, estoy usando el framework 4.0.

Intenté usar el marco 4.5, pero no sirvió de nada.

10 de septiembre de 2012: Tengo un caso abierto con soporte de Microsoft. Su equipo de desarrollo lo está investigando.

24 de octubre de 2012: Como .NET 4.5 reemplaza a 4.0, ya no puedo compilar en VS 2010. El problema que estoy experimentando es puramente .NET, no Visual Studio.



Microsoft ha confirmado que esto es un error. Ellos crearán una solución para ello e incluirán la corrección en el próximo service pack. No suena como si esto fuera una prioridad alta, por lo que probablemente tomará un tiempo para la corrección.

Actualización del 10-10-2012: el soporte de Microsoft se comunicó conmigo y dijo que esto se solucionará en una próxima solución "pronto".

2012-11-28 Update: Visual Studio 2012 Update 1 no soluciona el problema.


No tengo VS 2012; En este momento, pero debes intentar seguir las cosas

  1. ¿Se puede verificar el cambio de DOCTYPE? (a transicional, conjunto de cuadros, 1.1 o html 5, etc.)
  2. Pon toda la mesa dentro de asp: placeholder

Para una solución parcial, puede mover ese <th> código de front-end al código de back-end. Eso debería encargarse del problema de la compilación. Sin embargo, no sé qué hacer con las etiquetas <tbody> . Si ves el HTML de tu página tal como está ahora, dudo que se muestren de todos modos. Aquí es por qué.


Sí. Es un error en Visual Studio 2012. La aplicación del parche del siguiente enlace mencionado me ha funcionado: http://www.microsoft.com/en-us/download/details.aspx?id=36359

La eliminación de la etiqueta no lo resolverá para un proyecto en ejecución / migración actual. De esa manera tenemos que cambiar todas y cada una de las páginas aspx.


Solución simple quitar las etiquetas tbody y thead, para mí funcionó.