ASP.NET - Bevara ViewState
- Föregående sida WebForms Formulär
- Nästa sida WebForms TextBox
Genom att bevara objektets ViewState (vytillstånd) i webbformulär kan du spara mycket kodning.
Bevara ViewState (vytillstånd)
När ett formulär i classic ASP skickas in, töms alla formulärvärden. Tänk dig att du skickar in ett formulär med mycket information, och servern returnerar ett fel. Du måste återvända till formuläret och korrigera informationen. När du klickar på tillbaka-knappen händer vad... Alla formulärvärden töms, och du måste börja om allt från början. Webbplatsen bevarar inte din ViewState.
När ett formulär i ASP.NET skickas in, dyker formuläret upp igen med alla formulärvärden. Hur gör de det? Det beror på att ASP.NET bevarar din ViewState. ViewState indikerar tillståndet när sidan skickas till servern. Genom att placera en dold fält i en <form runat="server">-kontroll på varje sida kan vi definiera sidans tillstånd. Källkoden kan se ut så här:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" /> value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....några kod </form>
Att behålla ViewState är standardinställningen för ASP.NET Web-formulär. Om du inte vill behålla ViewState, inkludera instruktionen på toppen av .aspx-sidan: <%@ Page EnableViewState="false" %> eller lägg till egenskapen: EnableViewState="false" för alla kontroller.
Se nedanstående .aspx-fil. Den visar den gamla körningsmetoden. När du klickar på submit-knappen försvinner formulärvärdet:
<html> <body> <form action="demo_classicasp.aspx" method="post"> Ditt namn: <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>
Detta är den nya ASP .NET-metoden. När du klickar på submit-knappen försvinner inte formulärvärdena:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> Ditt namn: <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>
Visa detta exempel (Klicka på ‘Visa originaldokument’ i rutan till höger, där du kan se att ASP .NET har lagt till en dold fält i formuläret för att behålla ViewState。)
- Föregående sida WebForms Formulär
- Nästa sida WebForms TextBox