ASP.NET-View Stateの維持

2081 ワード

ビューステータスの維持
 
classic ASPのフォームがコミットされると、すべてのフォーム値が空になります.多くの情報を持つフォームをコミットし、サーバがエラーを返したことを想定します.フォームに戻り、情報を修正する必要があります.戻るボタンをクリックすると、何が起こるのでしょうか...すべてのフォーム値が空になり、すべてを再開する必要があります.サイトはビューステートを維持しません.
ASPになるNETのフォームがコミットされると、フォームはすべてのフォーム値とともに再表示されます.どうやって?これはASPのためです.NETはあなたのViewStateを維持しました.ViewStateは、ページがサーバに送信されたときにステータスを示します.各ページの
コントロールに非表示ドメインを配置することで、ページのステータスを定義できます.ソースコードは次のようになります.
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">

<input type="hidden" name="__VIEWSTATE"

value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />

.....some code

</form>

ViewStateを維持するのはASP.NET Webフォームのデフォルト設定.ビューステートを維持したくない場合は、aspxページの上部には、<%@Page EnableView State="false"%>、または任意のコントロールに属性を追加します:EnableView State="false".
下を見てください.aspxファイル.古い実行方法を示しています.「≪発行|Submit|Planning≫」ボタンをクリックすると、フォームの値は消えます.
<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>

TIY
これは新しいASPです.NET方式.送信ボタンをクリックすると、フォームの値は消えません.
<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>