Immer asp.net zum speichern von Ansichtszustand in der Sitzung eher als Füllstoff der html-Code
Ich versuche zu bekommen asp.net zum speichern von Ansichtszustand in der Sitzung statt bulking den html-Code.
Nun habe ich gelesen, dass asp.net kommt mit dem SessionPageStatePersister die verwendet werden können, anstelle der Standard-HiddenFieldPageStatePersister, dies zu tun. Ich Frage mich, wie ich gehen über Drop in?
Dies ist, was ich habe, so weit:
Ich glaube, ich brauche zum erstellen einer PageAdapter, gibt eine SessionPageStatePersister von seiner GetStatePersister Methode, und irgendwie bekommen die Seite zu verwenden, diese pageadapter. Aber Seite.PageAdapter hat nur eine get-Methode, so bin ich nicht sicher, wie Sie Sie festgelegt.
Siehe 'Bemerkungen' überschrift hier: http://msdn.microsoft.com/en-us/library/system.web.ui.hiddenfieldpagestatepersister.aspx
Dank!
- haben Sie sich überlegt speichern ViewState in die DB anstatt der Sitzung, sollte dies leichter und auch viel besser skalieren
- U / MIN: viewstate ist bereits serialisierte also keinen Unterschied. RAM auf meinem server ist viel schneller als das senden 100kb viewstate in beide Richtungen auf australischen Netzwerk-verbindungen.
- daveo: Db wäre langsamer als der ram. Skalierung ist kein Problem - jedoch nicht von der Art der website.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um Ihre benutzerdefinierten PageAdapter-Klasse, die Sie haben, um es zu registrieren mit .browser-Datei. Sie müssen hinzufügen (wenn Sie nicht bereits haben) ein Verzeichnis App_Browsers. Fügen Sie dann ein .browser-Datei mit dem folgenden XML -
ersetzen Sie {Ihr adapter Typ} mit dem adapter geben.
Mehr Informationen hier
Hoffe, das hilft.
Sie sicher, dass Sie dies tun wollen? Gibt es Probleme
Wenn Sie darauf bestehen, auf dem Weg diese Lesen Sie dann alles, was Sie tun müssen, ist, leiten Sie eine Klasse von der Seite und überschreiben LoadPageStateFromPersistenceMedium() und SavePageStateToPersistenceMedium(). Aber Sie werden dich hassen und rip it out irgendwann.
Nur sicher, dass Sie HTTP-Komprimierung aktiviert auf Ihrem server, und bitte, sorgen über etwas anderes statt.
Für was es Wert ist, hier ist der code landete ich mit, um zu lösen die große Bild-problem auf der hand: bewegen viewstate aus html. Nur pop diese in Ihre mypage.aspx.cs:
Und für eine super-einfache Möglichkeit, mithilfe der SessionPageStatePersister, wieder setzen Sie diese in Ihre mypage.aspx.cs: