ASP.NET -ViewState:n ylläpito
- Edellinen sivu WebForms lomake
- Seuraava sivu WebForms TextBox
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>
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ää.)
- Edellinen sivu WebForms lomake
- Seuraava sivu WebForms TextBox