ASP.NET WEB FORMS fornece aos desenvolvedores um excelente modelo de desenvolvimento orientado a eventos. No entanto, este modelo simples de desenvolvimento de aplicativos nos trouxe alguns pequenos problemas. Por exemplo, em um aplicativo ASP tradicional, você pode facilmente transferir um valor ou vários valores de uma página através do método POST para outra página (request()/). request.form()/request.querystring()), é um pouco problemático implementá-lo em ASP.NET usando o mesmo método. Aqui estão outras maneiras de resolver esta situação. O ASP.NET nos fornece três maneiras: uma é usar QueryString para transmitir o valor correspondente, a outra é transmitir o valor correspondente por meio da variável de sessão e a outra é implementá-lo por meio do método Server.Transfer.
1. Use string de consulta
Querystring é uma forma muito simples de passar valores. Sua desvantagem é que o valor a ser transmitido será exibido na barra de endereço do navegador e os objetos não podem ser passados neste método. Este método é melhor usado se você deseja passar um valor que não seja muito importante ou um valor simples. Vamos usar um pequeno exemplo para concluir o trabalho de transferência de valor. As etapas são as seguintes:
1. Crie um formulário web
2. Coloque um button1 no novo formulário web e dois TextBox1 e TextBox2
3. Crie o código de evento de clique para o botão da seguinte maneira:
private void button_click (remetente do objeto, System.EventArgs e)
{
url de string;
url="webform2.aspx?name="+TextBox1.Text + "&Email="+TextBox2.Text;
Resposta.Redirect(url);
}
4. Crie uma nova página de destino e nomeie-a como webform2
5. Coloque dois Label1 e Label2 no webform2
Adicione o seguinte código em Page_Load do webform2:
private void Page_Load (remetente do objeto, System.EventArgs e)
{
Label1.Text=Request.QueryString["nome"];
Label2.Text=Request.QueryString["E-mail"];
}
Execute-o e você poderá ver os resultados após a transferência.
2. Usar variáveis de sessão. Usar variáveis de sessão para passar valores é a maneira mais comum. Este método pode não apenas passar o valor para a próxima página, mas também passá-lo para várias páginas até que o valor da variável de sessão seja. removida. A variável desaparecerá. Veja um exemplo:
1. Crie um formulário web
2. Coloque um button1 no novo formulário web e dois TextBox1 e TextBox2
3. Crie o código de evento de clique para o botão da seguinte maneira:
private void button_click (remetente do objeto, System.EventArgs e)
{
Sessão["Nome"]=TextBox1.Text;
Sessão["E-mail"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
4. Crie uma nova página de destino e nomeie-a como webform2
5. Coloque dois Label1 e Label2 no webform2
Adicione o seguinte código em Page_Load do webform2:
private void Page_Load (remetente do objeto, System.EventArgs e)
{
Label1.Text=Sessão["Nome"].ToString();
Label2.Text=Sessão["E-mail"].ToString();
Session.Remove("Nome");
Session.Remove("E-mail");
}
Execute-o e você poderá ver os resultados após a transferência.
3. Use Servidor.Transfer
Embora esse método seja um pouco complicado, ainda é uma forma de passar valores na página.
Veja um exemplo:
1. Crie um formulário web
2. Coloque um button1 no novo formulário web e dois TextBox1 e TextBox2
3. Crie o código de evento de clique para o botão da seguinte maneira:
void privado (remetente do objeto, System.EventArgs e)
{
Servidor.Transfer("webform2.aspx");
}
4. Crie um processo para retornar os códigos de valor dos controles TextBox1 e TextBox2 da seguinte forma:
nome da string pública
{
obtenha {return TextBox1.Text;}
}
string pública E-mail
{
obter{retornar TextBox2.Text;}
}
5. Crie uma nova página de destino chamada webform2
6. Coloque dois Label1 e Label2 no webform2
Adicione o seguinte código em Page_Load do webform2:
private void Page_load (remetente do objeto, System.EventArgs e)
{
//Cria uma instância do webform
webform1 wf1;
//Obtém o identificador instanciado
wf1=(webform1)Context.Handler;
Label1.Text=wf1.Nome;
Label2.Text=wf1.E-mail;
}
Esses três métodos são comuns.