ASP.NET - Verwahrungszustand (ViewState) beibehalten
- Vorherige Seite WebForms Formular
- Nächste Seite WebForms TextBox
Durch das Beibehalten des Verwahrungszustands (ViewState) von Objekten in Web-Formularen können Sie eine Vielzahl von Codearbeiten einsparen.
Verwahrungszustand (ViewState) beibehalten
Wenn ein Formular in classic ASP eingereicht wird, werden alle Formularwerte gelöscht. Stellen Sie sich vor, Sie reichen ein Formular mit einer großen Anzahl von Informationen ein, und der Server gibt einen Fehler zurück. Sie müssen das Formular zurückgeben und die Informationen korrigieren. Sie klicken auf die Schaltfläche 'Zurück', und was passiert dann... Alle Formularwerte werden gelöscht, und Sie müssen alles von vorne beginnen. Die Seite behält Ihren Verwahrungszustand (ViewState) nicht bei.
Wenn ein Formular in ASP .NET eingereicht wird, erscheint das Formular zusammen mit allen Formularwerten erneut. Wie ist das möglich? Dies liegt daran, dass ASP .NET den Verwahrungszustand (ViewState) beibehält. Der Verwahrungszustand gibt bei der Übermittlung der Seite an den Server ihren Zustand an. Durch das Platzieren eines versteckten Bereichs in einem <form runat="server">-Steuerelement auf jeder Seite können wir den Zustand der Seite definieren. Der Quellcode könnte so aussehen:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....einige Code </form>
Der Verwahrungszustand (ViewState) ist die Standardkonfiguration von ASP.NET Web-Formularen. Wenn Sie den Verwahrungszustand nicht beibehalten möchten, fügen Sie bitte die Anweisung am Anfang der .aspx-Seite ein: <%@ Page EnableViewState="false" %> oder fügen Sie jedem Steuerelement die Eigenschaft hinzu: EnableViewState="false".
Bitte sehen Sie das folgende .aspx-Datei. Es demonstriert den alten Betriebsmodus. Wenn Sie auf die Schaltfläche 'Einreichen' klicken, verschwinden die Formularwerte:
<html> <body> <form action="demo_classicasp.aspx" method="post"> Ihr Name: <input type="text" name="fname" size="20"> <input type="submit" value="Submit"> </form> <% dim fname fname=Request.Form("fname") If fname<>"" Then Response.Write("Hello " & fname & "!") End If %> </body> </html>
Dies ist der neue ASP .NET Weg. Wenn Sie auf die Schaltfläche 'Submit' klicken, verschwinden die Formularwerte nicht:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> Ihr Name: <asp:TextBox id="txt1" runat="server" /> <asp:Button OnClick="submit" Text="Submit" runat="server" /> <p><asp:Label id="lbl1" runat="server" /></p> </form> </body> </html>
Diese Beispiel anzeigen (Klicken Sie bitte auf 'Originaldokument anzeigen' im rechten Rahmen, um zu sehen, dass ASP .NET eine versteckte Feld hinzugefügt hat, um den ViewState beizubehalten.)
- Vorherige Seite WebForms Formular
- Nächste Seite WebForms TextBox