Antwort.redirect nicht erhalten HttpContext.Aktuelle.Artikel
War ich das lernen über die HttpContext
und fand heraus, dass
HttpContext-Objekt wird neu gestaltet für jede Anfrage gegeben
ein ASP.Net Anwendung
Nun, betrachten einen Fall, wenn ich zwei Seiten. WebForm1 und Webform2. In Form1, Schreibe ich den unten genannten code und leitet auf form2.
HttpContext.Current.Items.Add("Key", "Value");
Abfrage
Wenn ich Server.Die übertragung dieser Schlüssel beibehalten, und dies ist nicht der Fall, während Sie Antwort.Redirect
Verwirrung
Wnenever eine neue Anforderung generiert wird, HttpCopntext-Objekt erstellt wird. Außerdem, Sitzung bleibt erhalten. Das ist Teil des HttpContext.
HttpContext.Current.Session
Ist, wenn Session bestehen können, warum nicht HttpContext.Current.Items
im Response.Redirect
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den redirect erzeugt eine neue
HttpContext
weshalb die Positionen verloren - das umleiten effektiv teilt dem browser mit, der nächsten URL zu verlangen, und wenn Sie es tut, verliert Sie den Zusammenhang mit der vorhergehenden Anforderung, dass der Auslöser für die Umleitung.Die Sitzung weiterhin über Anfragen (in der Regel mit einer sessionID-cookie zu binden, die Benutzer, um Werte auf dem server), und ist somit noch vorhanden.
HttpContext.Current.Session
anhalten und dieHttpContext.Cuttent.Items
nicht. Warum ?Session
und nicht halten Sie Gegenstände ?Empfehle ich Ihnen, sich mit dotPeek bei
System.Web.dll
, insbesondere an EigentumHttpContext.Session
verwendet in getterHttpContext.Items["AspSession"]
und in der MethodeSessionStateModule.InitStateStoreItem(...)
(genannt in diesem getter) wich AnrufeSessionStateUtility.AddHttpSessionStateToContext(...)
. Sie können sehen, dass der Inhalt der HttpSessionState Sammlung gespeichert ist, zwischen den Anforderungen inSessionStateStoreProviderBase
umgesetzt (InProc, Sql) Objekt, tiefer in ein Wort. In der Erwägung, dassHttpContext.Items
hashtable initialisiert wird zuerst bekommen und stirbt zwischen den Anforderungen.