Wie Übergeben von Werten über die Seiten in ASP.net ohne Verwendung von Sitzung

Ich versuche, die performance meines Webportals zu verbessern. Ich verwende Session, um Statusinformationen zu speichern.

Aber ich habe gehört, dass die Verwendung der Sitzung die Geschwindigkeit der Anwendung verringert. Gibt es eine andere Möglichkeit, Werte über die Seite in asp.net zu übergeben.

   

Sie können Werte von einer Seite an eine andere weitergeben.

 Response.Redirect Cookies Application Variables HttpContext 

Antwort.Redirekt

EINSTELLEN :

 Response.Redirect("Defaultaspx?Name=Pandian"); 

BEKOMMEN :

 string Name = Request.QueryString["Name"]; 

cookies

EINSTELLEN :

 HttpCookie cookName = new HttpCookie("Name"); cookName.Value = "Pandian"; 

BEKOMMEN :

 string name = Request.Cookies["Name"].Value; 

Anwendungsvariablen

EINSTELLEN :

 Application["Name"] = "pandian"; 

BEKOMMEN :

 string Name = Application["Name"].ToString(); 

Verweisen Sie den vollständigen Inhalt hier: Übergeben Sie Werte von einem zum anderen

Es gibt mehrere Möglichkeiten, dies zu erreichen. Ich kann Ihnen die 4 Typen, die wir in unserem täglichen Programmierlebenszyklus verwenden, kurz erklären.

Bitte gehen Sie die folgenden Punkte durch.

1 Abfragezeichenfolge

ErsteForm.aspx.cs

 Response.Redirect("SecondForm.aspx?Parameter=" + TextBox1.Text); 

SecondForm.aspx.cs

 TextBox1.Text = Request.QueryString["Parameter"].ToString(); 

Dies ist die zuverlässigste Methode, wenn Sie ganzzahlige Werte oder andere kurze Parameter übergeben. Wenn Sie in dieser Methode Sonderzeichen verwenden, während Sie die Abfragezeichenfolge übergeben, müssen Sie den Wert vor der Weiterleitung an die nächste Seite codieren. Unser Code-Snippet wird also etwa so aussehen:

ErsteForm.aspx.cs

 Response.Redirect("SecondForm.aspx?Parameter=" + Server.UrlEncode(TextBox1.Text)); 

SecondForm.aspx.cs

 TextBox1.Text = Server.UrlDecode(Request.QueryString["Parameter"].ToString()); 

URL-Codierung

  1. Server.URLE-Code
  2. HttpServerUtility.UrlDecode

2. Übergeben von Wert durch Kontextobjekt

Wertübergabe durch Kontextobjekt ist eine weitere weit verbreitete Methode.

ErsteForm.aspx.cs

 TextBox1.Text = this.Context.Items["Parameter"].ToString(); 

SecondForm.aspx.cs

 this.Context.Items["Parameter"] = TextBox1.Text; Server.Transfer("SecondForm.aspx", true); 

Beachten Sie, dass wir mit Server.Transfer statt Response.Redirect zu einer anderen Seite navigieren. Einige von uns verwenden auch das Session-Objekt, um Werte zu übergeben. Bei dieser Methode wird der Wert im Session-Objekt gespeichert und später aus dem Session-Objekt auf der zweiten Seite herausgezogen.

3. Senden des Formulars an eine andere Seite statt an PostBack

Dritte Methode, um den Wert zu übergeben, indem die Seite in ein anderes Formular gestellt wird. Hier ist das Beispiel:

ErsteForm.aspx.cs

 private void Page_Load(object sender, System.EventArgs e) { buttonSubmit.Attributes.Add("onclick", "return PostPage();"); } 

Und wir erstellen eine JavaScript-function, um das Formular zu veröffentlichen.

SecondForm.aspx.cs

 function PostPage() { document.Form1.action = "SecondForm.aspx"; document.Form1.method = "POST"; document.Form1.submit(); } TextBox1.Text = Request.Form["TextBox1"].ToString(); 

Hier posten wir das Formular auf eine andere Seite anstatt auf sich selbst. Sie können ViewState ungültig oder Fehler auf der zweiten Seite mit dieser Methode erhalten. Um diesen Fehler zu behandeln, setzen Sie EnableViewStateMac=false

4. Eine weitere Methode besteht darin, die PostBackURL-Eigenschaft des Steuerelements für den Seitenüberblick hinzuzufügen

In ASP.NET 2.0 hat Microsoft dieses Problem durch Hinzufügen der PostBackURL-Eigenschaft des Steuerelements für den Seitenüberblick behoben. Implementierung ist eine Frage der Einstellung einer Eigenschaft der Kontrolle und Sie sind fertig.

ErsteForm.aspx.cs

  

SecondForm.aspx.cs

 TextBox1.Text = Request.Form["TextBox1"].ToString(); 

Im obigen Beispiel weisen wir die PostBackUrl-Eigenschaft der Schaltfläche zu, mit der wir die Seite bestimmen können, an die sie sich selbst posten soll. Auf der nächsten Seite können wir über Request-Objekt auf alle Controls der vorherigen Seite zugreifen.

Sie können die PreviousPage-class auch verwenden, um auf Steuerelemente der vorherigen Seite zuzugreifen, anstatt das klassische Request-Objekt zu verwenden.

SecondForm.aspx

 TextBox textBoxTemp = (TextBox) PreviousPage.FindControl(“TextBox1″); TextBox1.Text = textBoxTemp.Text; 

Wie Sie bemerkt haben, ist dies auch eine einfache und saubere Implementierung des Übergabewerts zwischen Seiten.

Referenz: MICROSOFT MSDN WEBSITE

Gute Kodierung!

Wenn es nur dazu dient, Werte zwischen Seiten zu übergeben, und Sie es nur für die eine Anfrage benötigen. Context.

Kontext

Das Context-Objekt enthält Daten für einen einzelnen Benutzer für eine einzelne Anforderung und wird nur für die Dauer der Anforderung beibehalten. Der Kontextcontainer kann große Datenmengen enthalten, wird aber normalerweise zum Speichern kleiner Daten verwendet, da er häufig für jede Anforderung über einen Handler in global.asax implementiert wird. Der Kontextcontainer (auf den über das Page-Objekt oder über System.Web.HttpContext.Current zugegriffen werden kann) enthält Werte, die zwischen verschiedenen HttpModules und HttpHandlers übergeben werden müssen. Es kann auch verwendet werden, um Informationen zu speichern, die für eine gesamte Anfrage relevant sind. Zum Beispiel fügt das IBuySpy-Portal während des Application_BeginRequest-Ereignishandlers in global.asax einige Konfigurationsinformationen in diesen Container ein. Beachten Sie, dass dies nur während der aktuellen Anfrage gilt; Wenn Sie etwas benötigen, das für die nächste Anfrage noch verfügbar ist, sollten Sie ViewState verwenden. Das Festlegen und Abrufen von Daten aus der Context-Auflistung verwendet die gleiche Syntax wie bei anderen Auflistungsobjekten, z. B. Anwendung, Sitzung und Cache. Zwei einfache Beispiele werden hier gezeigt:

 // Add item to Context Context.Items["myKey"] = myValue; // Read an item from the Context Response.Write(Context["myKey"]); 

http://msdn.microsoft.com/en-us/magazine/cc300437.aspx#S6

Verwenden Sie das oben genannte. Wenn Sie dann einen Server.Transfer tun. Server.Transfer die Daten, die Sie im Kontext gespeichert haben, jetzt auf der nächsten Seite verfügbar. Sie müssen sich nicht darum kümmern, diese Daten zu entfernen / aufzubereiten, da sie nur auf die aktuelle Anfrage beschränkt sind.

Sie können es einem versteckten Feld zuweisen und es mit abrufen

 var value= Request.Form["value"] 

Sie können die Abfragezeichenfolge verwenden , um den Wert von einer Seite an eine andere zu übergeben.

1. Übergeben Sie den Wert mit Querystring

  Response.Redirect("Default3.aspx?value=" + txt.Text + "& number="+n); 

2. Wiederholen Sie den Wert auf der Seite, die Sie verwenden möchten, indem Sie eine dieser Methoden verwenden.

Methode 1 :

  string v = Request.QueryString["value"]; string n=Request.QueryString["number"]; 

Methode 2 :

  NameValueCollection v = Request.QueryString; if (v.HasKeys()) { string k = v.GetKey(0); string n = v.Get(0); if (k == "value") { lbltext.Text = n.ToString(); } if (k == "value1") { lbltext.Text = "error occured"; } } 

Hinweis : Methode 2 ist die schnellste Methode.