ASP.NET WEB FORMS proporciona a los desarrolladores un excelente modelo de desarrollo basado en eventos. Sin embargo, este modelo simple de desarrollo de aplicaciones nos ha traído algunos pequeños problemas. Por ejemplo, en una aplicación ASP tradicional, puede transferir fácilmente uno o varios valores de una página a través del método POST a otra página (solicitud ()/). request.form()/request.querystring()), es un poco problemático implementarlo en ASP.NET usando el mismo método. Aquí hay otras formas de resolver esta situación. ASP.NET nos proporciona tres formas, una es usar QueryString para transmitir el valor correspondiente, la otra es transmitir el valor correspondiente a través de la variable de sesión y la otra es implementarlo a través del método Server.Transfer.
1. Utilice una cadena de consulta
Querystring es una forma muy sencilla de pasar valores. Su desventaja es que el valor a transmitir se mostrará en la barra de direcciones del navegador y no se pueden pasar objetos en este método. Este método se utiliza mejor si desea pasar un valor que no sea demasiado importante o un valor simple. Usemos un pequeño ejemplo para completar el trabajo de transferencia de valor. Los pasos son los siguientes:
1. Crea un formulario web
2. Coloque un botón1 en el nuevo formulario web y dos TextBox1 y TextBox2.
3. Cree el código de evento de clic para el botón del botón de la siguiente manera:
botón vacío privado_clic (remitente del objeto, System.EventArgs e)
{
URL de cadena;
url="webform2.aspx?name="+TextBox1.Text + "&Email="+TextBox2.Text;
Respuesta.Redirect(url);
}
4. Cree una nueva página de destino y asígnele el nombre webform2.
5. Coloque dos Etiqueta1 y Etiqueta2 en webform2
Agregue el siguiente código en Page_Load de webform2:
Page_Load vacío privado (remitente del objeto, System.EventArgs e)
{
Label1.Text=Request.QueryString["nombre"];
Label2.Text=Request.QueryString["Correo electrónico"];
}
Ejecútelo y podrá ver los resultados después de la transferencia.
2. Utilice variables de sesión. El uso de variables de sesión para pasar valores es la forma más común. Este método no solo puede pasar el valor a la página siguiente, sino también pasarlo a varias páginas hasta que el valor de la variable de sesión sea. eliminada. La variable desaparecerá. Tomemos un ejemplo:
1. Crea un formulario web
2. Coloque un botón1 en el nuevo formulario web y dos TextBox1 y TextBox2.
3. Cree el código de evento de clic para el botón del botón de la siguiente manera:
botón vacío privado_clic (remitente del objeto, System.EventArgs e)
{
Sesión["Nombre"]=TextBox1.Text;
Sesión["Correo electrónico"]=TextBox2.Text;
Respuesta.Redirect("webform2.aspx");
}
4. Cree una nueva página de destino y asígnele el nombre webform2.
5. Coloque dos Etiqueta1 y Etiqueta2 en webform2
Agregue el siguiente código en Page_Load de webform2:
Page_Load vacío privado (remitente del objeto, System.EventArgs e)
{
Label1.Text=Sesión["Nombre"].ToString();
Label2.Text=Sesión["Correo electrónico"].ToString();
Session.Remove("Nombre");
Session.Remove("Correo electrónico");
}
Ejecútelo y podrá ver los resultados después de la transferencia.
3. Utilice Server.Transfer
Aunque este método es un poco complicado, sigue siendo una forma de pasar valores en la página.
Tomemos un ejemplo:
1. Crea un formulario web
2. Coloque un botón1 en el nuevo formulario web y dos TextBox1 y TextBox2.
3. Cree el código de evento de clic para el botón del botón de la siguiente manera:
vacío privado (remitente del objeto, System.EventArgs e)
{
Servidor.Transfer("webform2.aspx");
}
4. Cree un proceso para devolver los códigos de valor de los controles TextBox1 y TextBox2 de la siguiente manera:
Nombre de cadena pública
{
obtener {return TextBox1.Text;}
}
cadena pública de correo electrónico
{
obtener {return TextBox2.Text;}
}
5. Cree una nueva página de destino llamada webform2
6. Coloque dos Etiqueta1 y Etiqueta2 en webform2
Agregue el siguiente código en Page_Load de webform2:
carga de página vacía privada (remitente del objeto, System.EventArgs e)
{
//Crear una instancia de formulario web
formulario web1 wf1;
//Obtener el identificador instanciado
wf1=(webform1)Context.Handler;
Etiqueta1.Texto=wf1.Nombre;
Etiqueta2.Texto=wf1.Correo electrónico;
}
Estos tres métodos son comunes.