Ich versuche, asp.net dazu zu bringen, viewstate in der Sitzung zu speichern, anstatt den html aufzufüllen.
Nun habe ich gelesen, dass asp.net mit dem SessionPageStatePersister ausgeliefert wird, der statt des standardmäßigen HiddenFieldPageStatePersisters dazu verwendet werden kann. Ich habe mich gefragt, wie ich es fallen lasse?
Das habe ich bis jetzt: Ich denke, ich muss ein PageAdapter erstellen, das einen SessionPageStatePersister von seiner GetStatePersister-Methode zurückgibt, und irgendwie die Seite abrufen, um dieses pageadapter zu verwenden. Aber Page.PageAdapter hat nur einen Getter, also bin ich mir nicht sicher, wie Sie es einstellen.
Siehe die Überschrift "Anmerkungen" hier: Ссылка
Danke!
Um Ihre benutzerdefinierte PageAdapter-Klasse zu verwenden, müssen Sie sie mit der .browser-Datei registrieren. Sie müssen ein App_Browsers-Verzeichnis hinzufügen (falls Sie es noch nicht haben). Fügen Sie dann eine .browser-Datei mit folgendem XML-Code hinzu
%Vor%Ersetzen Sie {Ihren Adaptertyp} durch Ihren Adaptertyp.
Weitere Informationen hier
Hoffe, das hilft.
Bist du sicher, dass du das machen willst? Es gibt Probleme
Wenn Sie darauf bestehen, hinunter diese Zeilen lesen, dann alles, was Sie tun müssen, ist eine Klasse von Seite ableiten und außer Kraft setzen LoadPageStateFromPersistenceMedium () und SavePageStateToPersistenceMedium (). Aber du hasst dich selbst und reißt es schließlich aus.
Stellen Sie sicher, dass die HTTP-Komprimierung auf Ihrem Server aktiviert ist, und sorgen Sie sich stattdessen um etwas anderes.
Was es wert ist, hier ist der Code, den ich benutzt habe, um das große Gesamtproblem zu lösen: viewstate aus dem HTML zu entfernen. Einfach das in deine mypage.aspx.cs einfügen:
%Vor%Und für eine super-einfache Art, den SessionPageStatePersister zu verwenden, setzen Sie dies wieder in Ihre mypage.aspx.cs:
%Vor%