次の違いは何ですか。
- サーバー転送?
- Response.Redirect?
- ポストバックURL?
どちらを使用するかをいつ決定する必要がありますか?
次の違いは何ですか。
どちらを使用するかをいつ決定する必要がありますか?
Server.Transer()
サーバー側で動作します。クライアントが要求したものとは異なるページでクライアントに応答します。クライアントが更新 (F5) すると、元のページが更新されます。
Response.Redirect()
別のページに移動する必要があることをクライアントに応答します。これには追加のラウンドトリップが必要ですが、クライアントはリダイレクトについて知っているので、F5 は宛先ページを要求します。
PostbackUrl
クライアントでクリックされたときに移動する場所を ASP コントロールに指示するプロパティです。これにより、クライアントに情報を提供しながら、追加の往復は必要ありません。この方法を使用できる場合は、通常、他の選択肢よりも望ましい方法です。
Server.Transfer
同じアプリケーション内の別のページに処理をリダイレクトするよう ASP.NET に指示します。これは完全にサーバー側で発生します。これはサーバー側で発生するため、より「効率的」ですが、この方法にはいくつかの制限があります。以下のリンクでは、これらのいくつかについて説明しています。
Response.Redirect
実際には、応答で HTTP 302 ステータス コードを別の場所でクライアントに送り返します。その後、クライアントは新しい場所をたどる責任があります。ここで別のラウンドトリップが発生します。
PostBackUrl
「転送メソッド」ではなく、フォームを送信する URL をブラウザに伝えるプロパティです。デフォルトでは、フォームはサーバー上のそれ自体にポストバックされます。
ここに良いリンクがあります: http://haacked.com/archive/2004/10/06/responseredirectverseservertransfer.aspx
サーバー.転送:
サーバー上のあるページから別のページにリクエストを転送します。例 /page1.aspx のブラウザ要求
リクエストは、Server.Transfer("/page2.aspx")を実行する page1 に送信されるため、リクエストは page2 に転送され、page2 は応答で返されますが、ブラウザーのアドレス バーには URL が表示されたままになります。/page1.aspx
Response.Redirect
このステートメントは、ブラウザーに次のページを要求するように指示します。この場合、ブラウザのアドレス バーも変更され、新しいページの URL が表示されます
PostBackUrl
ボタンまたはリンクボタンで言及できます。これにより、指定されたページにフォームが送信されます。これは次のようになります。
<form method="post" action="/page2.aspx">