Neueste Web-Entwicklung Tutorials
 

ASP.NET Web Forms - Die Aufrechterhaltung der Viewstate


Sie können durch die Aufrechterhaltung der Viewstate der Objekte in Ihrem Webformular eine Menge Codierung speichern.


Die Aufrechterhaltung der Viewstate

Wenn ein Formular im klassischen ASP vorgelegt wird, werden alle Formularwerte gelöscht. Angenommen, Sie haben ein Formular mit vielen Informationen und der Server kommt mit einem Fehler vorgelegt. Sie müssen zurück in die Form gehen und die Informationen zu korrigieren. Sie klicken Sie auf die Zurück-Taste, und was passiert ....... sind alle Formularwerte gelöscht, und Sie werden wieder von vorne anfangen müssen! Die Website hat halten nicht Ihre Viewstate.

Wenn ein Formular in ASP .NET eingereicht wird, erscheint das Formular im Browser-Fenster mit allen Formularwerte. Woher? Dies liegt daran, ASP .NET Ihre Viewstate verwaltet. Der Viewstate zeigt den Status der Seite, wenn an den Server gesendet. Der Status wird durch ein verstecktes Feld auf jeder Seite mit einer <form runat = „server“> Kontrolle gestellt definiert. Die Quelle könnte in etwa so aussehen:

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />

.....some code

</form>

Viewstate pflegen ist die Standardeinstellung für ASP.NET Web Forms. Wenn Sie die Viewstate nicht beibehalten möchten, fügen Sie die Direktive <% @ Page EnableViewState = „false“%> an der Spitze einer ASPX-Seite oder fügen Sie das Attribut EnableViewState = „false“ auf jede Kontrolle.

Schauen Sie sich die folgenden ASPX-Datei. Es zeigt den "old" Weg , es zu tun. Wenn Sie auf den Absenden-Button klicken, wird das Formular Wert verschwinden:

Beispiel

<html>
<body>

<form action="demo_classicasp.aspx" method="post">
Your 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>
Beispiel anzeigen »

Hier ist die neue ASP .NET Art und Weise. Wenn Sie auf dem Absenden-Button klicken, wird der Formular-Wert nicht verschwinden:

Beispiel

Klicken Sie auf Quelltext anzeigen im rechten Rahmen des Beispiels zu sehen, dass ASP .NET hat ein verstecktes Feld in Form hinzugefügt, um die Viewstate beibehalten

<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Hello " & txt1.Text & "!"
End Sub
</script>

<html>
<body>

<form runat="server">
Your 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>
Beispiel anzeigen »