ASP.NET WEB FORMS offre aux développeurs un excellent modèle de développement événementiel. Cependant, ce modèle de développement d'application simple nous a posé quelques petits problèmes. Par exemple, dans une application ASP traditionnelle, vous pouvez facilement transférer une ou plusieurs valeurs d'une page via la méthode POST vers une autre page (request()/). request.form()/request.querystring()), il est un peu difficile de l'implémenter dans ASP.NET en utilisant la même méthode. Voici d’autres moyens de résoudre cette situation. ASP.NET nous propose trois méthodes, l'une consiste à utiliser QueryString pour transmettre la valeur correspondante, l'autre consiste à transmettre la valeur correspondante via la variable de session et l'autre consiste à l'implémenter via la méthode Server.Transfer.
1. Utilisez la chaîne de requête
La chaîne de requête est un moyen très simple de transmettre des valeurs. Son inconvénient est que la valeur à transmettre sera affichée dans la barre d'adresse du navigateur et que les objets ne peuvent pas être transmis dans cette méthode. Cette méthode est mieux utilisée si vous souhaitez transmettre une valeur qui n’est pas trop importante ou une valeur simple. Utilisons un petit exemple pour terminer le travail de transfert de valeur. Les étapes sont les suivantes :
1. Créez un formulaire Web
2. Placez un bouton1 dans le nouveau formulaire Web et deux TextBox1 et TextBox2
3. Créez le code d'événement de clic pour le bouton comme suit :
bouton vide privé_click (expéditeur d'objet, System.EventArgs e)
{
URL de chaîne ;
url="webform2.aspx?name="+TextBox1.Text + "&Email="+TextBox2.Text;
Réponse.Redirect(url);
}
4. Créez une nouvelle page cible et nommez-la webform2
5. Placez deux Label1 et Label2 dans webform2
Ajoutez le code suivant dans Page_Load de webform2 :
private void Page_Load (expéditeur d'objet, System.EventArgs e)
{
Label1.Text=Request.QueryString["nom"];
Label2.Text=Request.QueryString["Email"];
}
Exécutez-le et vous pourrez voir les résultats après le transfert.
2. Utiliser des variables de session. L'utilisation de variables de session pour transmettre des valeurs est le moyen le plus courant. Cette méthode peut non seulement transmettre la valeur à la page suivante, mais également la transmettre de manière croisée à plusieurs pages jusqu'à ce que la valeur de la variable de session soit. supprimée. La variable disparaîtra. Prenons un exemple :
1. Créez un formulaire Web
2. Placez un bouton1 dans le nouveau formulaire Web et deux TextBox1 et TextBox2
3. Créez le code d'événement de clic pour le bouton comme suit :
bouton vide privé_click (expéditeur d'objet, System.EventArgs e)
{
Session["Nom"]=TextBox1.Text;
Session["Email"]=TextBox2.Text;
Réponse.Redirect("webform2.aspx");
}
4. Créez une nouvelle page cible et nommez-la webform2
5. Placez deux Label1 et Label2 dans webform2
Ajoutez le code suivant dans Page_Load de webform2 :
private void Page_Load (expéditeur d'objet, System.EventArgs e)
{
Label1.Text=Session["Nom"].ToString();
Label2.Text=Session["Email"].ToString();
Session.Remove("Nom");
Session.Remove("E-mail");
}
Exécutez-le et vous pourrez voir les résultats après le transfert.
3. Utilisez Server.Transfer
Bien que cette méthode soit un peu compliquée, elle reste un moyen de transmettre des valeurs sur la page.
Prenons un exemple :
1. Créez un formulaire Web
2. Placez un bouton1 dans le nouveau formulaire Web et deux TextBox1 et TextBox2
3. Créez le code d'événement de clic pour le bouton comme suit :
vide privé (expéditeur d'objet, System.EventArgs e)
{
Serveur.Transfer("webform2.aspx");
}
4. Créez un processus pour renvoyer les codes de valeur des contrôles TextBox1 et TextBox2 comme suit :
chaîne publique Nom
{
obtenir {return TextBox1.Text;}
}
chaîne publique Email
{
obtenir{return TextBox2.Text;}
}
5. Créez une nouvelle page cible nommée webform2
6. Placez deux Label1 et Label2 dans webform2
Ajoutez le code suivant dans Page_Load de webform2 :
private void Page_load (expéditeur d'objet, System.EventArgs e)
{
//Créer une instance de formulaire Web
formulaire Web1 wf1 ;
//Obtenir le handle instancié
wf1=(webform1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.Email;
}
Ces trois méthodes sont courantes.