ASP.NET WEB FORMS bietet Entwicklern ein hervorragendes ereignisgesteuertes Entwicklungsmodell. Dieses einfache Anwendungsentwicklungsmodell hat uns jedoch einige kleine Probleme bereitet. In einer herkömmlichen ASP-Anwendung können Sie beispielsweise problemlos einen Wert oder mehrere Werte von einer Seite über die POST-Methode übertragen (request()/). request.form()/request.querystring()), ist es etwas mühsam, es mit derselben Methode in ASP.NET zu implementieren. Hier finden Sie weitere Möglichkeiten, diese Situation zu lösen. ASP.NET bietet uns drei Möglichkeiten: Eine besteht darin, QueryString zum Übertragen des entsprechenden Werts zu verwenden, die andere darin, den entsprechenden Wert über die Sitzungsvariable zu übertragen, und die andere darin, ihn über die Server.Transfer-Methode zu implementieren.
1. Verwenden Sie Querystring
Querystring ist eine sehr einfache Möglichkeit, Werte zu übergeben. Der Nachteil besteht darin, dass der zu übertragende Wert in der Adressleiste des Browsers angezeigt wird und Objekte mit dieser Methode nicht übergeben werden können. Diese Methode eignet sich am besten, wenn Sie einen nicht allzu wichtigen oder einen einfachen Wert übergeben möchten. Lassen Sie uns ein kleines Beispiel verwenden, um die Wertübertragungsarbeit abzuschließen. Die Schritte sind wie folgt:
1. Erstellen Sie ein Webformular
2. Platzieren Sie eine Schaltfläche1 im neuen Webformular und zwei TextBox1 und TextBox2
3. Erstellen Sie den Klickereigniscode für die Schaltfläche wie folgt:
private void button_click(object sender,System.EventArgs e)
{
String-URL;
url="webform2.aspx?name="+TextBox1.Text + "&Email="+TextBox2.Text;
Response.Redirect(url);
}
4. Erstellen Sie eine neue Zielseite und nennen Sie sie webform2
5. Platzieren Sie zwei Label1 und Label2 in webform2
Fügen Sie den folgenden Code in Page_Load von webform2 hinzu:
private void Page_Load(object sender,System.EventArgs e)
{
Label1.Text=Request.QueryString["name"];
Label2.Text=Request.QueryString["Email"];
}
Führen Sie es aus und Sie können die Ergebnisse nach der Übertragung sehen.
2. Die Verwendung von Sitzungsvariablen zum Übergeben von Werten ist die gebräuchlichste Methode, um den Wert nicht nur an die nächste Seite weiterzugeben, sondern ihn auch an mehrere Seiten weiterzugeben, bis der Wert der Sitzungsvariablen vorliegt Die Variable wird entfernt. Nehmen Sie ein Beispiel:
1. Erstellen Sie ein Webformular
2. Platzieren Sie eine Schaltfläche1 im neuen Webformular und zwei TextBox1 und TextBox2
3. Erstellen Sie den Klickereigniscode für die Schaltfläche wie folgt:
private void button_click(object sender,System.EventArgs e)
{
Sitzung["Name"]=TextBox1.Text;
Session["Email"]=TextBox2.Text;
Response.Redirect("webform2.aspx");
}
4. Erstellen Sie eine neue Zielseite und nennen Sie sie webform2
5. Platzieren Sie zwei Label1 und Label2 in webform2
Fügen Sie den folgenden Code in Page_Load von webform2 hinzu:
private void Page_Load(object sender,System.EventArgs e)
{
Label1.Text=Session["Name"].ToString();
Label2.Text=Session["Email"].ToString();
Session.Remove("Name");
Session.Remove("Email");
}
Führen Sie es aus und Sie können die Ergebnisse nach der Übertragung sehen.
3. Verwenden Sie Server.Transfer
Obwohl diese Methode etwas kompliziert ist, ist sie dennoch eine Möglichkeit, Werte auf der Seite zu übergeben.
Nehmen Sie ein Beispiel:
1. Erstellen Sie ein Webformular
2. Platzieren Sie eine Schaltfläche1 im neuen Webformular und zwei TextBox1 und TextBox2
3. Erstellen Sie den Klickereigniscode für die Schaltfläche wie folgt:
private void (Objektsender,System.EventArgs e)
{
Server.Transfer("webform2.aspx");
}
4. Erstellen Sie einen Prozess, um die Wertcodes der Steuerelemente TextBox1 und TextBox2 wie folgt zurückzugeben:
öffentlicher String-Name
{
get {return TextBox1.Text;}
}
öffentliche Zeichenfolge E-Mail
{
get{return TextBox2.Text;}
}
5. Erstellen Sie eine neue Zielseite mit dem Namen webform2
6. Platzieren Sie zwei Label1 und Label2 in webform2
Fügen Sie den folgenden Code in Page_Load von webform2 hinzu:
private void Page_load(object sender,System.EventArgs e)
{
//Eine Instanz von Webform erstellen
webform1 wf1;
//Das instanziierte Handle abrufen
wf1=(webform1)Context.Handler;
Label1.Text=wf1.Name;
Label2.Text=wf1.Email;
}
Diese drei Methoden sind üblich.