Solución de problemas de representación de la vista Diseño

Actualización: noviembre 2007

Algunos problemas comunes pueden surgir cuando está intentando abrir un archivo en el diseñador de Web Forms que no puede representarse correctamente en el diseñador. Los problemas de representación de la vista Diseño ocurren frecuentemente cuando se trabaja con un archivo que se creó originalmente como una página de formularios Web Forms de código subyacente, fuera de Visual Studio. Sin embargo, estos problemas pueden ocurrir bajo diversas circunstancias. Lo más habitual es que el problema implique a atributos de la directiva @ Page en una página de formularios Web Forms o de la directiva @ Control de un control de usuario de formularios Web Forms.

Nota:

El diseñador de Web Forms es el editor registrado para los archivos cuya extensión coincide con la del archivo con el que se está trabajando. Si no desea utilizar el diseñador de Web Forms para trabajar con un archivo, cambie la extensión del archivo. Otra opción es hacer clic en el archivo con el botón secundario del mouse (ratón) en el Explorador de soluciones, elegir Abrir con y seleccionar un editor diferente.

Problemas con el atributo Src

Se puede producir un error si tiene un atributo Src en la directiva @ Page o @ Control. Este atributo no es compatible con el diseñador de Web Forms. Para corregir este error:

  • Quite el atributo Src. En su lugar, agregue:

    • Un atributo CodeBehind que hace referencia al nombre de un archivo de código subyacente del proyecto.

    • Un atributo Inherits que hace referencia al nombre de la clase representado por el archivo de código subyacente. (Esta clase, a su vez, debe heredarse de la clase System.Web.UI.Page.)

    Nota:

    Si no hay ya un archivo de código subyacente y una clase, puede hacer que el diseñador de Web Forms genere uno. Después de quitar el atributo Src, establezca el atributo Inherits en una cadena vacía ("") y el atributo CodeBehind en el nombre del archivo de código subyacente que se va a generar (nombreformulario.aspx.vb o nombreformulario.aspx.cs). Guarde el archivo y ciérrelo. En el Explorador de soluciones, haga clic en el archivo .aspx con el botón secundario del mouse (ratón) y elija Ver código. Cuando guarde el archivo de código subyacente, el diseñador generará el archivo de clase adecuado. Vuelva a abrir el archivo. Realice cualquier acción que genere código en el archivo de código subyacente (por ejemplo, agregar un control o hacer doble clic en un control para crear un controlador de eventos) y, a continuación, guarde el archivo. El diseñador establecerá correctamente el atributo Inherits de la página de formularios Web Forms.

Como alternativa, puede quitar los atributos Src, CodeBehind y Inherits y tratar el archivo como una página de formularios Web Forms de un solo archivo. Para obtener información detallada, vea Trabajar con Páginas de formularios Web Forms de archivo único en Visual Studio .NET.

Problemas con el atributo CodeBehind

El atributo CodeBehind de la directiva @ Page o @ Control hace referencia al nombre de un archivo que contiene la clase para la página. Por ejemplo, si crea una página de formularios Web Forms en Visual Studio con el nombre WebForm1, el atributo CodeBehind señalará a WebForm1.aspx.vb o WebForm1.aspx.cs.

El atributo CodeBehind sólo se utiliza en tiempo de diseño; indica al diseñador de Web Forms dónde encontrar la clase de la página, de modo que el diseñador pueda crear una instancia para poder trabajar con ella.

Entre los problemas asociados al atributo CodeBehind se encuentran los siguientes:

  • El archivo al que se hace referencia no está disponible. El archivo no existe o tiene un nombre diferente.

  • La clase del archivo de referencia se hereda de una clase base a la que no se hace referencia en el proyecto. Normalmente, la clase de la página de formularios Web Forms se hereda de la clase System.Web.UI.Page, pero si se trabaja con un control de usuario o una página de formularios Web Forms para otra plataforma, tal como un dispositivo móvil, es posible que la clase base sea diferente.

La clase del archivo de referencia se hereda de una clase base del proyecto que no se ha compilado.

Problemas con el atributo Inherits

El atributo Inherits de la directiva @ Page o @ Control se refiere al nombre de una clase (no de un archivo) del que se hereda la página en tiempo de ejecución. Para ver información detallada sobre el modelo de herencia para páginas de formularios Web Forms, vea Modelo de código de formularios Web Forms.

Sólo se producen problemas con el atributo Inherits si, además, falta un atributo CodeBehind. Esto puede suceder, por ejemplo, en una página de formularios Web Forms de archivo único. El diseñador sólo utiliza la clase a la que se refiere el atributo Inherits para crear una instancia de la página en tiempo de diseño, si no hay ningún atributo CodeBehind.

Nota:

Si hay un atributo CodeBehind, el diseñador omitirá el atributo Inherits, aunque éste apunte a una clase que no se encuentre disponible. En este caso, es posible trabajar con la página en el diseñador, pero no funcionará.

El problema más común asociado al atributo Inherits es que apunte a una clase que no esté disponible en el proyecto o en un ensamblado al que se haga referencia.

Vea también

Conceptos

Vista Diseño