ASP.NET でサーバー コードからポストバックをプログラムでトリガーすることは可能ですか? ページにリダイレクトするために Response.Redirect または Server.Transfer を実行できることはわかっていますが、サーバー コードで同じページへのポストバックをトリガーする方法はありますか (つまり、javascript トリックを使用してフォームを送信する必要はありません)。
5 に答える
Asp.net ポストバックはクライアントから開始されます (通常はフォーム送信)。あなたが何を達成しようとしているのかわかりません。サーバー側のページ ライフサイクルイベントの一部は既に実行されており、以前のイベント ハンドラーを再び発生させようとしています。
ポストバックは、FORM の送信によって発生します。クライアントからそれらを開始する必要があります。
Ajaxリクエストでそれを行うことができます。サーバーをポーリングするページが必要です。サーバーが情報を要求せずにブラウザーにプッシュする方法はありません。しかし、バックグラウンドで実行され、5 秒ごと (または必要に応じてそれ以上) にサーバーをポーリングする Javascript を使用することが、おそらく最良の解決策です。
追記
このルートに進むと、ポストバックを実行する必要があるかどうかに応じて、サーバーに yes または no だけ、または 0 または 1 だけを返信させることができます。必要に応じて、AJAX の XML 部分を実際に使用する理由はほとんどありません。おそらくいくつかのクエリ文字列変数を使用して、単純な非同期リクエストを実行するだけで、応答として単純な 1 つの単語または数値さえも返されます。そうすれば、XML を作成および解析するための JavaScript が不要な場合に保持できます。
新しいバージョンの .NET を使用している場合Page.ClientScript.GetPostBackEventReference
は、'this.GetPostBackEventReference(...)'
廃止されたため、使用する必要があります。また、おそらくPage.ClientScript.RegisterStartupScript(...