Compartir a través de


Redirigir a los usuarios a otra página

Actualización: noviembre 2007

A menudo deseará redirigir a los usuarios a otras páginas como parte de su aplicación Web. ASP.NET proporciona las siguientes maneras de incluir el redireccionamiento en las páginas Web:

  • Utilizar hipervínculos en las páginas.

  • Configurar el envío entre páginas, lo que permite especificar una página de destino alternativa cuando se envía la página actual.

  • El redireccionamiento mediante programación obligando al explorador a solicitar una página diferente.

  • El redireccionamiento mediante programación transfiriendo el control a una página diferente en la misma aplicación Web.

A continuación se describe cada una de estas opciones. En la tabla incluida al final de este tema se resumen las opciones y se proporcionan directrices para ayudarle a decidir cuándo se debe utilizar cada una.

Hipervínculos

Puede utilizar una etiqueta delimitadora HTML (<a>) en una página Web ASP.NET para crear vínculos estáticos o puede controlar el texto del vínculo y la dirección URL de destino de los hipervínculos mediante programación utilizando el control HyperLink. En este escenario, el usuario hace clic en un vínculo explícitamente y el explorador transfiere a la página de destino. La página de destino se invoca utilizando un comando GET de HTTP. Por consiguiente, a la página de destino no se le pasa ninguna información sobre la página de origen a menos que se especifique una cadena de consulta en la dirección URL de la página de destino. Si las páginas de origen y de destino están en la misma aplicación Web, pueden compartir información mediante el estado de sesión o el estado de aplicación.

Envío entre páginas

De manera predeterminada, los botones de una página Web ASP.NET envían la página a sí misma. El envío entre páginas permite configurar un botón en una página Web ASP.NET para enviar la página actual a una página diferente. Un ejemplo típico es la creación de un formulario de varias páginas. Puede configurar los botones en la página para desplazarse a la página anterior y siguiente del formulario.

El envío entre páginas es similar a los hipervínculos en el hecho de que una acción del usuario inicia la transferencia. Sin embargo, en el envío entre páginas, la página de destino se invoca utilizando un comando POST de HTTP que envía los valores de los controles de la página de origen a la página de destino. Además, si la página de origen y de destino están en la misma aplicación Web, la página de destino puede tener acceso a las propiedades públicas de la página de origen. Como siempre, todas las páginas de la aplicación pueden compartir información almacenada en el estado de sesión o en el estado de aplicación.

Para obtener más información, vea Envío entre páginas en las páginas Web ASP.NET y Cómo: Enviar páginas Web ASP.NET a una página diferente.

Redirigir utilizando el explorador mediante programación

Puede redirigir (es decir, hacer que el explorador muestre una nueva página sin la intervención del usuario) mediante programación llamando al método Redirect. El método envía un comando al explorador del usuario que hace que el explorador obtenga la página de destino. Llamar al método Redirect es el equivalente en programación de hacer clic en un hipervínculo, ya que se produce una nueva solicitud (un comando GET de HTTP) para la página de destino. Dado que se llama al método Redirect desde su propio código, puede definir la dirección URL de destino dinámicamente, incluyendo cualquier información de cadena de consulta, según los requisitos de la aplicación. Al igual que con los hipervínculos, el método Redirect no pasa información de envío a la página de destino. Si las páginas de origen y de destino están en la misma aplicación Web, puede compartir datos entre ellas almacenándolos en el estado de sesión.

Redirigir mediante programación en el servidor

También puede redirigir mediante programación a una página de destino en el servidor llamando al método Transfer. En este escenario, el servidor simplemente transfiere el contexto de página de origen actual a la página de destino. A continuación, se muestra la página de destino en lugar de la página de origen. La página de origen y de destino deben estar en la misma aplicación Web. Al igual que con el envío entre páginas, el método Transfer tiene la ventaja de que permite a la página de origen leer los valores de control y los valores de propiedad públicos de la página de origen.

Debido a que la transferencia entre la página de origen y de destino ocurre en el servidor, el explorador no tiene información sobre la página cambiada y retiene información sobre la dirección URL original (de origen). Por ejemplo, el cuadro Dirección de Internet Explorer no cambia después de una transferencia sino que, por el contrario, continúa mostrando la dirección URL de la página que solicitó más recientemente (normalmente la página de origen). El historial del explorador no se actualiza para reflejar la transferencia. Esto puede producir un comportamiento inesperado si el usuario actualiza la página en el explorador o hace clic en el botón Atrás. Por consiguiente, llamar al método Transfer es una estrategia que resulta más adecuada para aplicaciones donde se presentan las páginas al usuario con la dirección URL oculta.

Seleccionar una opción de redireccionamiento

La tabla siguiente resume las posibles maneras de redirigir entre las páginas.

Estrategia

Características

Uso

Hipervínculos

  • Realiza una nueva solicitud en la página de destino.

  • No pasa la información de la página actual a la página de destino.

  • Requiere iniciación por parte del usuario.

  • El redireccionamiento se produce a cualquier página, no sólo a aquéllas incluidas en la misma aplicación Web.

  • Permite compartir información entre las páginas utilizando una cadena de consulta o el estado de sesión. (El control HyperLink permite crear cadenas de direcciones URL y de consulta mediante programación.)

  • Para la exploración sin ningún procesamiento adicional, como en menús o listas de vínculos.

  • Cuando el desplazamiento a otra página debe realizarse bajo el control del usuario.

Envío entre páginas

  • Envía la información de la página actual a la página de destino.

  • Hace que la información del envío esté disponible en la página de destino.

  • Requiere iniciación por parte del usuario.

  • El redireccionamiento se produce a cualquier página, no sólo a aquéllas incluidas en la misma aplicación Web.

  • Permite que la página de destino lea las propiedades públicas de la página de origen cuando estas páginas están en la misma aplicación Web.

  • Para pasar la información de la página actual a la página de destino (como en los formularios de varias páginas).

  • Cuando el desplazamiento debe realizarse bajo el control del usuario.

Redireccionamiento del explorador

  • Realiza una nueva solicitud en la página de destino.

  • Pasa la cadena de consulta a la página de destino.

  • Permite controlar dinámicamente y mediante programación la dirección URL de destino y la cadena de consulta.

  • Permite el redireccionamiento a cualquier página, no sólo a aquéllas incluidas en la misma aplicación Web.

  • Permite almacenar información de la página de origen en el estado de sesión antes del redireccionamiento para compartirla con la página de destino.

  • Para la exploración condicional, cuando desee controlar la dirección URL de destino y cuando tenga lugar la exploración. Por ejemplo, utilice esta opción si la aplicación debe determinar a qué página debe desplazarse basándose en los datos proporcionados por el usuario.

Transferencia del servidor

  • Transfiere el control a una nueva página que se representa en lugar de la página de origen.

  • El redireccionamiento sólo se produce a las páginas de destino que están en la misma aplicación Web que la página de origen.

  • Permite leer los valores y las propiedades públicas de la página de origen.

  • No actualiza la información del explorador con información sobre la página de destino. Al presionar los botones para actualizar o retroceder del explorador, se pueden producir resultados inesperados.

  • Para la exploración condicional, cuando se desee controlar cuándo tiene lugar la exploración y se desee obtener acceso al contexto de la página de origen.

  • Esta opción se recomienda en situaciones en las que la dirección URL está oculta para el usuario.

Vea también

Tareas

Cómo: Pasar valores entre páginas Web ASP.NET

Cómo: Enviar páginas Web ASP.NET a una página diferente

Cómo: Determinar el modo en que se invocaron las páginas Web ASP.NET

Conceptos

Información general sobre la administración de estados de ASP.NET