ASP.NET -ViewState:n ylläpito

Voit säästää paljon koodausta, kun ylläpidät objektienViewState:ää (näkymätilaa) Web-lomakkeessa.

ViewState:n ylläpito (näkymätila)

Kun classic ASP:ssä oleva lomake lähetetään, kaikki lomakkeen arvot tyhjennetään. Kuvailepa, että lähetät lomakkeen, joka sisältää paljon tietoja, ja palvelin palauttaa virheen. Sinun täytyy palata lomakkeeseen ja korjata tietoja. Kun painat takaisin-painiketta, mitä tapahtuu... Kaikki lomakkeen arvot tyhjennetään, ja sinun täytyy aloittaa kaikki alusta. Sivusto ei ylläpidäViewState:ääsi.

Kun ASP.NET:ssä oleva lomake lähetetään, lomake ilmestyy uudelleen kaikkien lomakkeen arvojen kanssa. Miten tämä tapahtuu? Tämä johtuu siitä, että ASP.NET ylläpitääViewState:ääsi. ViewState ilmoittaa sivun tilasta, kun se lähetetään palvelimelle. Voimme määritellä sivun tilan asettamalla piilotetun kentän <form runat="server">-kontrolliin jokaisessa sivussa. Lähdekoodi voi näyttää tältä:

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

ViewState:n ylläpito on ASP.NET Web-lomakkeen oletusasetus. Jos et halua ylläpitää ViewState:ää, sisällytä ohje .aspx-sivun ylätunnisteeseen: <%@ Page EnableViewState="false" %> tai lisää ominaisuus: EnableViewState="false" mihin tahansa kytkimeen.

Tarkastele alla olevaa .aspx-tiedostoa. Se esittää vanhan toimintatavan. Kun painat lähettä-painiketta, lomakkeen arvot katoavat:

<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Nimesi: <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>

Näytä tämä esimerkki

Tämä on uusi ASP .NET -tyyli. Kun napsautat lähetä-painiketta, lomakkeen arvot eivät katoa:

<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Hello " & txt1.Text & "!"
End Sub
</script>
<html>
<body>
<form runat="server">
Nimesi: <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>

Näytä tämä esimerkki (Napsauta oikeassa kehyksessä "Näytä alkuperäinen asiakirja", niin näet, että ASP .NET on lisännyt lomakkeeseen piilotetun kentän, jotta ViewState voidaan säilyttää.)