1

候補者からの回答に基づいて、ASP.Net アプリケーションでの ViewState の機能について混乱しています。候補によると、何らかの値を持つコントロールがあり、その値を変更すると、ポストバック時に初期値と変更された値がサーバーに送信されます。したがって、値を変更して送信し続けると、ツリー全体がサーバーに送信されます。私はオンラインで検索しようとしましたが、同じことに関する事実を得ることができませんでした.

上記の説明がわかりにくい場合は、クレームをより明確にするための例を次に
示し<asp:TextBox ID="txt1" runat="Server" Text="First Value"/>
ますtxt1。クリック イベント)
- ここで「Third Value」と入力しtxt1、もう一度送信を押します。

候補者によると、最初に送信を押したとき、「最初の値」と「2番目の値」の両方がサーバーに送信され、その後ページが読み込まれると、これらの両方の値が暗号化されてViewStateに入れられるため、送信を押すと2 回目は、viewstate の暗号化された値 (「最初の値」と「2 番目の値」の両方を持つ) が「3 番目の値」と共に送信されます。

私はエンジニアリングのバックグラウンドを持っていませんが、候補者は、これが大学で彼に教えられたことだと主張しました。それらの主張にある程度の真実があるかどうか知りたいだけです. どんな助けでも大歓迎です。

4

1 に答える 1

4

いいえ、そうではありません。

2 回目の送信では、「2 番目の値」が ViewState 非表示フィールドの一部として送信され、「3 番目の値」が TextBox の値として送信されます。

ただし、3 つの値はすべて、ページのライフサイクル中のさまざまな時点でサーバーに表示されます (これが混乱の原因になっている可能性があります)。

  • ページ ライフサイクルの初期段階で、「最初の値」が設定されます (ページ マークアップから)。

  • LoadViewState フェーズ中に、これは (ViewState からの) 「2 番目の値」に置き換えられます。

  • LoadPostbackData フェーズ中に、これは「3 番目の値」に置き換えられます。

次のポストバック (たとえば「4 番目の値」) では、ページのライフサイクルのさまざまな時点で「1 番目の値」、「3 番目の値」、「4 番目の値」を確認できますが、「2 番目の値」は表示されなくなります。良い。

于 2012-06-14T09:12:08.860 に答える