Quiero traerles este tema hoy ya que pasar valores entre páginas web es algo que tarde o temprano vamos a necesitar usar. Por ejemplo, imagínese que tiene una web donde los usuarios seleccionan algún tipo de producto y usted quiere enviarlos a una página donde les muestra una descripción más ampliada del mismo o simplemente procese la venta de dicho producto. En mi caso, choque con esto cuando realice una web de inventario de equipos tecnológicos en mi compañía, y entre otras cosas los usuarios necesitaban, que al seleccionar determinado equipo se mostrara una especie de ficha técnica del equipo entre otras cosas.  Les voy a explicar dos métodos para hacer esto, y veremos algunas ventajas y desventajas de ellos.

Método uno: Usar los estados de sección

  • El uso de los estados de sección están disponibles para cualquier aplicación web asp.net y tiene la ventaja de ser fácil de usar. Aunque solo tienen vigencia dentro de la misma aplicación, el problema de esto más bien radica en la carga que trae para la memoria del servidor y que la información almacenada no expira mientras que la sección no lo haga. Por lo tanto trae lentitud en la carga de las páginas. Vamos a ver un ejemplo de cómo funciona.

 Página origen

VB

Session("nombredelavariable") = "valor"

C#

Session["nombredelavariable "] = " valor ";

Página Destino

En este caso use un tipo string porque sabía que mi variable de sección era un string, pero poder ser cualquier tipo de objeto. Aun así es necesario hacer un casteo ya que los valores almacenados en las variables de sección no almacenan el tipo de dato.

VB

Dim variable as String = CType(Session.Item("nombredelavariable "), String)

C#

String variable = (string)Session["nombredelavariable "];

Método dos: Usar QueryString

  • El uso de QueryString es mucho más recomendado a pesar de tener muchas desventajas ya que es muy fácil de implementar, permite pasar datos entre distintas aplicaciones webs y es más ligero ya que los valores se pasan dentro de la misma dirección url. Sus problemas radican en que como sus datos pasan a través de la url como dije anteriormente, está limitado en el tamaño a transmitir, estos quedan visibles por lo que hay que tener cuidado con la información que se maneja (aunque existen métodos para codificarlos), pueden ser modificados por el usuario fácilmente y no admite todo tipo de caracteres. Pero bueno veamos un ejemplo:

Página origen

Server.Transfer("~/url.aspx?nombrevariable1 =" + Label.Text);

En caso de ser más de una variable se usa el carácter “&” para separarlas

Server.Transfer (“~/url.aspx?nombrevariable1=valorvariable1&nombrevariable2=valorvariable2”)

Página Destino

string valor1 = Request.QueryString["valorvariable1"];
string valor2 = Request.QueryString[“valorvariable2”];

Hay muchos otros métodos, pero estos son los que yo he usado y los que a mi entender son más comunes. Ahora, cuando usar uno y cuando otro, depende ya de ustedes. En mi caso, uso los estados de sección si deseo ocultar la información que voy a pasar, y en caso contrario uso las QueryString. Salu2 a todos y espero que encontraran el post útil.

Anuncios