Sei sulla pagina 1di 6

Escuela de Informtica y Telecomunicaciones

Programacin .Net Desarrollo Web ASP.Net


Redireccionamiento y Paso de Valores
En esta gua:
Trabajando con ms de una pgina................................................................................ 1
Hipervnculos............................................................................................................................... 1
Envo entre pginas ..................................................................................................................... 1
Redirigir utilizando el explorador mediante programacin........................................................ 1
Redirigir mediante programacin en el servidor ........................................................................ 2

Seleccionar una opcin de redireccionamiento........................................................... 2


Determinar el modo en que se invocaron las pginas Web ASP.Net ............................ 4
Paso de valores entre pginas Web ASP.Net............................................................... 5

Escuela de Informtica y Telecomunicaciones

Trabajando con ms de una pgina


A menudo ser necesario redirigir a los usuarios a otras pginas como parte de su aplicacin Web. ASP.Net
proporciona las siguientes maneras de incluir el redireccionamiento en las pginas Web:

Utilizar hipervnculos en las pginas (nativo HTML).


Configurar el envo entre pginas, lo que permite especificar una pgina de destino alternativa
cuando se enva la pgina actual.
El redireccionamiento mediante programacin, obligando al explorador a solicitar una pgina
diferente.
El redireccionamiento mediante programacin, transfiriendo el control a una pgina diferente en la
misma aplicacin Web.

A continuacin 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 cundo se debe utilizar cada una.

Hipervnculos
Puede utilizar una etiqueta delimitadora HTML (<a>) en una pgina Web ASP.Net para crear vnculos
estticos o puede controlar el texto del vnculo y la direccin URL de destino de los hipervnculos mediante
programacin utilizando el control HyperLink. En este escenario, el usuario hace clic en un vnculo
explcitamente y el explorador transfiere a la pgina de destino. La pgina de destino se invoca utilizando un
comando GET de HTTP. Por consiguiente, a la pgina de destino no se le pasa ninguna informacin sobre la
pgina de origen a menos que se especifique una cadena de consulta en la direccin URL de la pgina de
destino. Si las pginas de origen y de destino estn en la misma aplicacin Web, pueden compartir
informacin mediante el estado de sesin o el estado de aplicacin.

Envo entre pginas


De manera predeterminada, los botones de una pgina Web ASP.Net envan la pgina a s misma. El envo
entre pginas permite configurar un botn en una pgina Web ASP.Net para enviar la pgina actual a una
pgina diferente. Un ejemplo tpico es la creacin de un formulario de varias pginas. Puede configurar los
botones en la pgina para desplazarse a la pgina anterior y siguiente del formulario (tipo wizard).
El envo entre pginas es similar a los hipervnculos en el hecho de que una accin del usuario inicia la
transferencia. Sin embargo, en el envo entre pginas, la pgina de destino se invoca utilizando un comando
POST de HTTP que enva los valores de los controles de la pgina de origen a la pgina de destino. Adems,
si la pgina de origen y de destino estn en la misma aplicacin Web, la pgina de destino puede tener
acceso a las propiedades pblicas de la pgina de origen. Como siempre, todas las pginas de la aplicacin
pueden compartir informacin almacenada en el estado de sesin o en el estado de aplicacin.

Redirigir utilizando el explorador mediante programacin


Puede redirigir (es decir, hacer que el explorador muestre una nueva pgina sin la intervencin del usuario)
mediante programacin llamando al mtodo Redirect() del objeto Response de la pgina. El mtodo enva
un comando al explorador del usuario que hace que el explorador obtenga la pgina de destino. Llamar al
mtodo Redirect es el equivalente en programacin de hacer clic en un hipervnculo, ya que se produce una

Pgina 1

Escuela de Informtica y Telecomunicaciones

nueva solicitud (un comando GET de HTTP) para la pgina de destino. Dado que se llama al mtodo Redirect
desde su propio cdigo, puede definir la direccin URL de destino dinmicamente, incluyendo cualquier
informacin de cadena de consulta, segn los requisitos de la aplicacin. Al igual que con los hipervnculos,
el mtodo Redirect no pasa informacin de envo a la pgina de destino. Si las pginas de origen y de destino
estn en la misma aplicacin Web, puede compartir datos entre ellas almacenndolos en el estado de
sesin.

Redirigir mediante programacin en el servidor


Tambin puede redirigir mediante programacin a una pgina de destino en el servidor llamando al mtodo
Transfer() del objeto Server de la pgina. En este escenario, el servidor simplemente transfiere el contexto
de pgina de origen actual a la pgina de destino. A continuacin, se muestra la pgina de destino en lugar
de la pgina de origen. La pgina de origen y de destino, debern estar en la misma aplicacin Web. Al igual
que con el envo entre pginas, el mtodo Transfer tiene la ventaja de que permite a la pgina de origen leer
los valores de control y los valores de propiedad pblicos de la pgina de origen.
Debido a que la transferencia entre la pgina de origen y de destino ocurre en el servidor, el explorador no
tiene informacin sobre la pgina cambiada y retiene informacin sobre la direccin URL original (de
origen). Por ejemplo, el cuadro Direccin de Internet Explorer no cambia despus de una transferencia sino
que, por el contrario, contina mostrando la direccin URL de la pgina que solicit ms recientemente
(normalmente la pgina de origen). El historial del explorador no se actualiza para reflejar la transferencia.
Esto puede producir un comportamiento inesperado si el usuario actualiza la pgina en el explorador o hace
clic en el botn Atrs. Por consiguiente, llamar al mtodo Transfer es una estrategia que resulta ms
adecuada para aplicaciones donde se presentan las pginas al usuario con la direccin URL oculta.

Seleccionar una opcin de redireccionamiento


Teniendo conocimiento de las diferentes formas para realizar la transferencia entre pgina es necesario
tener en cuenta las consideraciones que implica utilizar una u otra opcin al momento de programar
nuestros sitios web. Esta decisin estar acorde a los requerimientos particulares de lo que deseamos
solucionar y de hecho podemos utilizar una mezcla de ellos. La tabla siguiente resume las posibles maneras
de redirigir entre las pginas y las respectivas consideraciones:
Estrategia
Hipervnculos

Caractersticas
Realiza una nueva solicitud en la pgina de
destino.
No pasa la informacin de la pgina actual
a la pgina de destino.
Requiere iniciacin por parte del usuario.
El redireccionamiento se produce a
cualquier pgina, no slo a aqullas
incluidas en la misma aplicacin Web.
Permite compartir informacin entre las
pginas utilizando una cadena de consulta
o el estado de sesin. (El control
HyperLink permite crear cadenas de
direcciones URL y de consulta mediante
programacin.)

Pgina 2

Uso
Para la exploracin sin
ningn
procesamiento
adicional, como en mens o
listas de vnculos.
Cuando el desplazamiento a
otra pgina debe realizarse
bajo el control del usuario.

Escuela de Informtica y Telecomunicaciones

Estrategia
Envo entre Pginas

Redireccionamiento
del Explorador

Redireccionamiento
del Servidor

Caractersticas
Enva la informacin de la pgina actual a
la pgina de destino.
Hace que la informacin del envo est
disponible en la pgina de destino.
Requiere iniciacin por parte del usuario.
El redireccionamiento se produce a
cualquier pgina, no slo a aqullas
incluidas en la misma aplicacin Web.
Permite que la pgina de destino lea las
propiedades pblicas de la pgina de
origen cuando estas pginas estn en la
misma aplicacin Web.
Realiza una nueva solicitud en la pgina de
destino.
Pasa la cadena de consulta a la pgina de
destino.
Permite controlar dinmicamente y
mediante programacin la direccin URL
de destino y la cadena de consulta.
Permite el redireccionamiento a cualquier
pgina, no slo a aqullas incluidas en la
misma aplicacin Web.
Permite almacenar informacin de la
pgina de origen en el estado de sesin
antes del redireccionamiento para
compartirla con la pgina de destino.
Transfiere el control a una nueva pgina
que se representa en lugar de la pgina de
origen.
El redireccionamiento slo se produce a
las pginas de destino que estn en la
misma aplicacin Web que la pgina de
origen.
Permite leer los valores y las propiedades
pblicas de la pgina de origen.
No actualiza la informacin del explorador
con informacin sobre la pgina de
destino. Al presionar los botones para
actualizar o retroceder del explorador, se
pueden producir resultados inesperados.

Pgina 3

Uso
Para pasar la informacin de
la pgina actual a la pgina
de destino (como en los
formularios
de
varias
pginas).
Cuando el desplazamiento
debe realizarse bajo el
control del usuario.

Para
la
exploracin
condicional, cuando desee
controlar la direccin URL de
destino y cuando tenga lugar
la exploracin. Por ejemplo,
utilice esta opcin si la
aplicacin debe determinar a
qu pgina debe desplazarse
basndose en los datos
proporcionados
por
el
usuario.

Para
la
exploracin
condicional, cuando se desee
controlar cundo tiene lugar
la exploracin y se desee
obtener acceso al contexto
de la pgina de origen.
Esta opcin se recomienda
en situaciones en las que la
direccin URL est oculta
para el usuario.

Escuela de Informtica y Telecomunicaciones

Determinar el modo en que se invocaron las pginas Web ASP.Net


A menudo resulta til saber cmo se ha invocado una pgina Web ASP.Net: si se ha invocado mediante una
solicitud original (HTTP GET), una devolucin de datos (HTTP POST), un envo a travs de pginas desde otra
pgina (HTTP POST) o una transferencia de otra pgina utilizando el mtodo Transfer, o usando una
devolucin de llamada del explorador. La clase Page expone un conjunto de propiedades que se pueden
utilizar para determinar cmo se ha invocado la pgina.
Para determinar cmo se ha invocado una pgina Web ASP.Net, se pueden consultar los valores de las
propiedades de la clase Page que se indican a continuacin, resolviendo el resultado mediante la tabla que
se muestra a continuacin, para determinar cmo se ha invocado la pgina:

IsPostBack: Determina si es la primera llamada que se realiza a la pgina.


PreviousPage: Contiene una referencia la instancia de la pgina que transfiri el control. Si no hubo
transferencia su valor es null.
IsCrossPagePostBack: Indica si el control fue transferido entre pginas.
IsCallback: Indica si la solicitud de la pgina es el resultado de una devolucin de llamada.

La tabla siguiente muestra las formas en las que puede invocarse una pgina y los valores de la propiedad
Page correspondientes.
Mtodo de Invocacin
Solicitud Original

Devolucin de Datos

Envo a travs de pgina

Valor de las propiedades


IsPostBack est establecida en false.
PreviousPage est establecida en null.
IsCallback est establecida en false.
IsPostBack est establecida en true.
PreviousPage est establecida en null (Nothing en Visual Basic).
IsCallback est establecida en false.

Transferencia del
Servidor

Devolucin de llamada

IsPostBack est establecida en false.


PreviousPage hace referencia a la pgina de origen.
IsCrossPagePostBack est establecida en false.
IsCrossPagePostBack a la que se hace referencia en la propiedad
PreviousPage est establecida en true.
IsCallback est establecida en false.

IsPostBack est establecida en false.


PreviousPage hace referencia a la pgina de origen.
IsCrossPagePostBack a la que se hace referencia en la propiedad
PreviousPage est establecida en false.
IsCallback est establecida en false.

IsPostBack est establecida en false.


PreviousPage est establecida en null (Nothing en Visual Basic).
IsCallback est establecida en true.

Pgina 4

Escuela de Informtica y Telecomunicaciones

Paso de valores entre pginas Web ASP.Net


Si en la aplicacin se redirige de una pgina Web ASP.Net a otra, a menudo se desear pasar informacin de
la pgina de origen a la de destino. Por ejemplo, imagine que tiene una pgina cuyos usuarios pueden
seleccionar los elementos que desean adquirir. Cuando los usuarios envan la pgina, se debe llamar a otra
pgina que procese la informacin introducida por el usuario.
La informacin se puede pasar entre pginas de varias formas, algunas de las cuales dependen de cmo se
lleve a cabo la redireccin. Entre las opciones posibles se encuentran las siguientes:

Utilice una cadena de consulta que anexe la informacin a la direccin URL de la pgina de destino.
Puede emplear este mtodo cuando utilice un control HyperLink para disear la exploracin de una
pgina o cuando realice la redireccin mediante programacin a otra pgina mediante el mtodo
Redirect. El traspaso de valores en cadenas de consulta funciona aunque las pginas no se
encuentren en la misma aplicacin Web; tambin funciona si desea pasar la informacin a una
pgina que no es una pgina Web ASP.Net. Si la pgina de destino es una pgina Web ASP.Net,
puede leer el valor de la cadena de consulta a partir de la propiedad QueryString del objeto
HttpRequest, cada uno de los valores enviados puede ser accedido directamente en la propiedad
Params del objeto Request.

Utilice el estado de sesin para almacenar informacin a la podrn tener acceso todas las pginas
Web ASP.Net de la aplicacin actual. Sin embargo, con este mtodo se consume memoria del
servidor y la informacin permanece almacenada hasta que finaliza la sesin, lo que puede suponer
una sobrecarga mayor de la deseada simplemente para pasar informacin a la pgina siguiente.
Para obtener informacin detallada, vea Informacin general sobre la administracin de estados de
ASP.Net.

En la pgina de destino, lea directamente en la pgina de origen los valores de los controles y los
valores de las propiedades pblicas. Esta estrategia funciona en dos situaciones: cuando la pgina
de origen enva mensajes cruzados a la pgina de destino y cuando se llama al mtodo Transfer
para transferir la ejecucin de la pgina de origen a la pgina de destino en el servidor. En tales
casos puede acceder directo a los valores contenidos en el formulario de la pgina de llamada.

Inicialmente en la primera gua vimos el uso de las variables de sesin de manera local, pero estas variables
estn presentes a nivel de aplicacin, es decir, la pgina no es la propietaria de este valor. Los otros dos
mtodos descritos nos proveen de informacin mediante mecanismos distintos, pero estos mecanismos no
estn habilitados en ambas formas de llamado.

Pgina 5

Potrebbero piacerti anche