Web ページのチュートリアルlogin
Web ページのチュートリアル
著者:php.cn  更新時間:2022-04-11 14:20:28

Web フォームのビューステート


ASP.NET Web フォーム - ViewState を維持する


Web フォーム内のオブジェクトの ViewState を維持することで、コーディング作業を大幅に節約できます。


ViewState を維持する

クラシック ASP では、フォームが送信されると、すべてのフォーム値がクリアされます。大量の情報を含むフォームを送信すると、サーバーからエラーが返されたとします。情報を修正するにはフォームに戻る必要があります。 「戻る」ボタンを押すと何が起こりますか...すべてのフォーム値がクリアされ、すべてを最初からやり直す必要があります。サイトは ViewState を維持していません。

ASP .NET では、フォームが送信されると、フォーム値とともにフォームがブラウザー ウィンドウに表示されます。どうやって?これは、ASP .NET が ViewState を維持するためです。 ViewState は、サーバーに送信されたときのページの状態を示します。この状態は、<form runat="server"> コントロールを使用してすべてのページに隠しフィールドを配置することで定義されます。ソース コードは次のとおりです。

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

....一部のコード

</form>

ViewState の維持は、ASP.NET Web フォームのデフォルト設定です。 ViewState を維持したくない場合は、.aspx ページの先頭にディレクティブ <%@ Page EnableViewState="false" %> を含めるか、プロパティ EnableViewState="false" をコントロールに追加します。

以下の .aspx ファイルをご覧ください。これは「古い」操作方法を示しています。送信ボタンをクリックすると、フォームの値が消えます:

インスタンス

<!DOCTYPE html>
<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>

インスタンスの実行 »

「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します

新しいASPは次のとおりです.NETの方法。送信ボタンをクリックしてもフォームの値は消えません:

インスタンスの右フレームで [ソースの表示] をクリックすると、ASP .NET が ViewState を維持するためにフォームに隠しフィールドを追加したことがわかります。

インスタンス

<script  runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Hello " & txt1.Text & "!"
End Sub
</script>

<!DOCTYPE html>
<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>

インスタンスの実行 »

「インスタンスの実行」ボタンをクリックしてオンラインインスタンスを表示します


PHP中国語ウェブサイト