asp.net Webフォームでビューステートを使用せずにページの更新を検出する方法はありますか?たとえば、asp.net mvcはビューステートを使用しないため、それが可能かどうか疑問に思いました。
ページサイズを小さく保つために、ビューステートを一緒に使用することは避けようとしています。
IsPostBack は機能しません。これは、イベントからのポストバックではなく、F5 または Pager の更新ケースであるためです。
httpプロトコルはステートレスであり、応答がリクエストに送信された後、セッション以外のすべてのトレースを削除します。Webフォームが機能する方法は、ページの状態をシリアル化し、それをクライアントに送信してから、ポストバック (フォーム ポスト リクエスト) を行うときにサーバーに戻すことです。そのため、クライアントが以前にアクセスしたページに関するセッションのクライアントに関する情報を保存し、同じページを再度要求した場合にセッションをチェックインできます。
ページで ViewState を無効にして、コード ビハインドで IsPostback を使用できないのはなぜですか? このようにして、コード ビハインドで必要なことは何でも行うことができ、ViewState がページ サイズを詰まらせることを心配する必要はありません。
enableViewState フラグを @Page ディレクティブに追加することで、ページの ViewState を無効にできます。
私が考えることができる唯一の他のことは、F5のキープレスをキャッチするJavaScriptコードを用意することですが、明らかにこれはF5のリフレッシュのみをキャプチャし、リフレッシュボタンのリフレッシュはキャプチャしません。
このサイトでは、Javascript を使用してキーの押下をキャプチャする方法を示しています:
http://www.go4expert.com/forums/showthread.php?t=2733
を使用して、サーバー側でページの更新を検出できます IsPostBack
。実際、Page_Load
コード ビハインドに挿入したコードは、ページが更新されるたびに実行されます。または、私はあなたの質問を誤解しましたか?