2

asp.net Webフォームでビューステートを使用せずにページの更新を検出する方法はありますか?たとえば、asp.net mvcはビューステートを使用しないため、それが可能かどうか疑問に思いました。

ページサイズを小さく保つために、ビューステートを一緒に使用することは避けようとしています。

4

4 に答える 4

1

IsPostBack は機能しません。これは、イベントからのポストバックではなく、F5 または Pager の更新ケースであるためです。

于 2009-07-21T08:13:43.140 に答える
0

httpプロトコルはステートレスであり、応答がリクエストに送信された後、セッション以外のすべてのトレースを削除します。Webフォームが機能する方法は、ページの状態をシリアル化し、それをクライアントに送信してから、ポストバック (フォーム ポスト リクエスト) を行うときにサーバーに戻すことです。そのため、クライアントが以前にアクセスしたページに関するセッションのクライアントに関する情報を保存し、同じページを再度要求した場合にセッションをチェックインできます。

于 2009-07-21T08:23:03.230 に答える
0

ページで ViewState を無効にして、コード ビハインドで IsPostback を使用できないのはなぜですか? このようにして、コード ビハインドで必要なことは何でも行うことができ、ViewState がページ サイズを詰まらせることを心配する必要はありません。

enableViewState フラグを @Page ディレクティブに追加することで、ページの ViewState を無効にできます。

私が考えることができる唯一の他のことは、F5のキープレスをキャッチするJavaScriptコードを用意することですが、明らかにこれはF5のリフレッシュのみをキャプチャし、リフレッシュボタンのリフレッシュはキャプチャしません。

このサイトでは、Javascript を使用してキーの押下をキャプチャする方法を示しています:
http://www.go4expert.com/forums/showthread.php?t=2733

于 2009-07-21T07:44:41.107 に答える
0

を使用して、サーバー側でページの更新を検出できます IsPostBack。実際、Page_Loadコード ビハインドに挿入したコードは、ページが更新されるたびに実行されます。または、私はあなたの質問を誤解しましたか?

于 2009-07-21T07:48:54.217 に答える