Páginas maestras ASP.NET

Las páginas maestras de ASP.NET permiten crear un diseño coherente para las páginas de la aplicación. Puede definir el aspecto, el diseño y el comportamiento estándar que desea que tengan todas las páginas (o un grupo de páginas) de la aplicación en una sola página maestra. A continuación, puede crear páginas de contenido individuales que incluyan el contenido que desea mostrar. Cuando los usuarios solicitan las páginas de contenido, éstas se combinan con la página maestra para dar como resultado una página con el diseño de la página maestra y el contenido de la página de contenido.

Páginas maestras y plantillas web dinámicas

Tanto las páginas maestras como las plantillas web dinámicas permiten crear un diseño coherente que se puede actualizar fácilmente en todas las páginas de un sitio. Si trabaja con archivos ASP.NET, use páginas maestras para definir un aspecto coherente con el contenido que se comparte entre las páginas. Si trabaja con archivos HTML, use plantillas web dinámicas.

Páginas maestras

Plantillas web dinámicas

Se usan con archivos .aspx.

Se usan con archivos .htm o .html.

El contenido maestro y el contenido de las páginas se combinan en el servidor cuando se solicita la página.

El contenido de la plantilla existe en todas las páginas basadas en la plantilla y se debe actualizar en todas las páginas cada vez que se actualiza la plantilla.

El contenido de cada página debe encontrarse entre las etiquetas <asp:contentplaceholder> y </asp:contentplaceholder>.

El contenido de cada página debe encontrarse entre las etiquetas <!-- #BeginEditable --> y <! #EndEditable -->.

Ventajas de las páginas maestras para los archivos ASP.NET

Las páginas maestras proporcionan una funcionalidad que tradicionalmente se creaba copiando el código, el texto y los elementos de control existentes repetidamente, mediante conjuntos de marcos, archivos de inclusión de elementos comunes, controles de usuario ASP.NET, etc. Entre las ventajas de las páginas maestras, figuran las siguientes:

  • Permiten centralizar la funcionalidad común de las páginas para que las actualizaciones puedan llevarse a cabo en un solo lugar.

  • Facilitan la creación de un conjunto de controles y código, y aplican los resultados a un conjunto de páginas. Por ejemplo, puede utilizar los controles de la página maestra para crear un menú que se aplique a todas las páginas.

  • Proporcionan un control más preciso sobre el diseño de la página final porque permiten controlar cómo se representan los controles PlaceHolder.

  • Proporcionan un modelo de objetos que permite personalizar la página maestra a partir de páginas de contenido individuales.

Cómo funcionan las páginas maestras

Las páginas maestras se componen en realidad de dos partes: la propia página maestra y una o varias páginas de contenido.

Páginas maestras

Una página maestra es un archivo ASP.NET con la extensión .master (por ejemplo, MiSitio.master) que tiene un diseño predefinido que puede incluir texto estático, elementos HTML y controles de servidor. La página maestra se identifica mediante una directiva @ Master especial que reemplaza la directiva @ Page que se usa en las páginas .aspx ordinarias.

Además de la directiva @ Master, la página maestra también contiene todos los elementos HTML de nivel superior de una página, como html, head y form. Por ejemplo, en una página maestra podría utilizar una tabla HTML para el diseño, un elemento IMG para el logotipo de la compañía, texto estático para el aviso de copyright y controles de servidor para crear la exploración estándar del sitio. Puede utilizar cualquier elemento HTML y ASP.NET en la página maestra.

Además del texto estático y los controles que aparecerán en todas las páginas, la página maestra también incluye uno o varios controles ContentPlaceHolder. Estos controles PlaceHolder definen las áreas que incluirán contenido reemplazable. A su vez, el contenido reemplazable se define en las páginas de contenido.

Páginas de contenido

Para definir el contenido de los controles PlaceHolder de la página maestra, cree páginas de contenido individuales, que son páginas ASP.NET (archivos .aspx y, opcionalmente, archivos de código subyacente) que están enlazadas a una página maestra concreta.

Después de crear los controles Content, agrégueles texto y controles.

Comportamiento en tiempo de ejecución de las páginas maestras

En tiempo de ejecución, IIS controla las páginas maestras en la secuencia siguiente:

  1. Los usuarios solicitan una página escribiendo la dirección URL de la página de contenido.

  2. Cuando se captura la página, se lee la directiva @ Page. Si la directiva hace referencia a una página maestra, también se lee la página maestra. Si las páginas se solicitan por primera vez, se compilan las dos páginas.

  3. La página maestra con el contenido actualizado se combina en el árbol de control de la página de contenido.

  4. El contenido de los controles Content individuales se combina en el control contentplaceholder correspondiente de la página maestra.

  5. La página combinada resultante se representa en el explorador.

Desde la perspectiva del usuario, la combinación de las páginas maestras y las páginas de contenido da como resultado una única página. La dirección URL de esta página es la de la página de contenido.

Hacer referencia a recursos externos

Tanto la página de contenido como la página maestra pueden contener controles y elementos que hagan referencia a recursos externos. Por ejemplo, las dos podrían contener controles de imagen que hicieran referencia a archivos de imágenes o podrían contener delimitadores que hicieran referencia a otras páginas.

El contexto de las páginas maestras y de contenido combinadas es el de la página de contenido. Esto puede afectar al modo en que se especifican en los delimitadores las direcciones URL de recursos tales como archivos de imágenes y páginas de destino.

Controles de servidor

En los controles de servidor de las páginas maestras, ASP.NET modifica dinámicamente las direcciones URL de las propiedades que hacen referencia a recursos externos. Por ejemplo, podría situar un control Image en una página maestra y establecer su propiedad ImageUrl para que hiciera referencia a la página maestra. En tiempo de ejecución, ASP.NET modificará la dirección URL para que se resuelva correctamente en el contexto de la página de contenido.

ASP.NET puede modificar las direcciones URL en los casos siguientes:

  • La dirección URL es una propiedad de un control de servidor ASP.NET.

  • La propiedad se marca internamente en el control como una dirección URL (la propiedad se marca con el atributo UrlPropertyAttribute). Por cuestiones prácticas, las propiedades de los controles de servidor ASP.NET que se utilizan normalmente para hacer referencia a recursos externos se marcan de este modo.

Otros elementos

ASP.NET no puede modificar las direcciones URL de los elementos que no son controles de servidor. Por ejemplo, si usa un elemento IMG en una página maestra y establece su atributo SRC en una dirección URL, ASP.NET no modificará esta dirección URL. En ese caso, la dirección URL se resolverá en el contexto de la página de contenido y se creará la dirección URL correspondiente.

En general, al trabajar con elementos de las páginas maestras, resulta recomendable utilizar un control de servidor incluso para los elementos que no requieren código de servidor. Por ejemplo, en lugar de usar un elemento IMG, use un control de servidor Image. De este modo, ASP.NET puede resolver las direcciones URL correctamente y se evitan los problemas de mantenimiento que podrían surgir al mover la página maestra o la página de contenido.

Ayuda para usar páginas maestras

Para obtener información detallada acerca de las páginas maestras, vea los temas de ASP.NET siguientes en MSDN Library:

Vea también

Tareas

Crear una página maestra

Crear una página a partir de una página maestra

Agregar contenido a una página de contenido

Referencia

Barra de herramientas Página maestra