ASP.NET - 维持 ViewState
- Picha ya mawasiliano Mifomu ya WebForms
- Picha ya mpito TextBox ya WebForms
通过在 Web 表单中维持对象的 ViewState (视图状态),您可以省去大量的编码工作。
维持 ViewState (视图状态)
当 classic ASP 中的表单被提交时,所有的表单值都会被清空。设想一下,您提交了一张带有大量信息的表单,而服务器返回了一个错误。您将不得不返回表单,然后更正其中的信息。您点击后退按钮,然后会发生什么呢... 所有的表单值都被清空了,而您将不得不重新开始所有的一切。站点不会维持您的 ViewState。
Kwa sababu formu ya ASP .NET inapita, formu inapakia kwa thamani zote za formu. Kama hilo hufanyika? Kwa sababu ASP .NET inapangulia ViewStatet. ViewStatet inaonyesha hali ya page wakati inapita kwa mawasiliano kwa server. Kwa kuingia kwa eneo gani kinachozungumza kwa kila page kwa kina <form runat="server">, tunaweza kufasili hali ya page. Mafanikio ya mengine inayofanana na hii ni:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....some code </form>
Kumpangulia ViewState ni muhimu wa chakula cha ASP.NET Web. Ikiwa hataratibu unapangulia ViewState, ingawa inahesabu kwa kufikia kichwa cha .aspx page kwa ujumbe: <%@ Page EnableViewState="false" %> au kuingia kwa eneo gani kinachozungumza: EnableViewState="false".
Tazama chaguo chini ya .aspx. Hii inademoa jina la kufanya kwa sababu ya zamani. Kwa sababu unapita kiburi cha kumtaarifu, thamani ya formu inakutua:
<html> <body> <form action="demo_classicasp.aspx" method="post"> Jina lako: <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>
Hii ni njia ya mpya ya ASP .NET. Kama unaingia kwa ukweli kwa kibili ya kumuagiza, thamani ya formu haitakadai:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> Jina lako: <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>
Onyesha mifano hii (Tafadhali bonyeza 'Angalia Hapana' kwenye kijaini kwa eneo la kulia, unaweza kuona kwamba ASP .NET amechangia ujumbe wa formu kwa nyumba ya juu ya hali ya kusoma, kwa sababu hii inaweza kusakinisha hali ya kusoma.)
- Picha ya mawasiliano Mifomu ya WebForms
- Picha ya mpito TextBox ya WebForms