asp.Net中Response.RedirectとServerTransferの区別分析
950 ワード
Server.Transferメソッドは、実行プロセスを現在のASPXファイルから同じサーバ上の別のASPXページに移動します.サーバを呼び出すTransferの場合、現在のASPXページは実行を終了し、実行プロセスは別のASPXページに移行しますが、新しいASPXページは前のASPXページで作成した応答フローを使用します.
サーバーを使用する場合.Transferメソッドはページ間のナビゲーションを実現し、ブラウザのURLは変更されません.リダイレクトは完全にサーバ側で行われているため、ブラウザはサーバがページ変換を実行したことを全然知りません.
Response.Redirectは、クライアントがサーバに状態コード302および新しいURLを返すように初めて要求する、クライアントが再び新しいURLを要求し、サーバがサーバよりも新しいページを返す.Transferは1回以上応答します.
一般的に2ページの間でデータを共有する必要があり、データ量が大きい場合はtransferが適切で、2ページ目で前のページのデータを直接使用することができます.
eg:
TransferToPage.aspx
前のページコントロールの値を直接参照します.
Redirectは、いくつかの小さな文字列値を渡すことができます.
Response.Redirect( "b.aspx?id=0&name=Jeff ");
サーバーを使用する場合.Transferメソッドはページ間のナビゲーションを実現し、ブラウザのURLは変更されません.リダイレクトは完全にサーバ側で行われているため、ブラウザはサーバがページ変換を実行したことを全然知りません.
Response.Redirectは、クライアントがサーバに状態コード302および新しいURLを返すように初めて要求する、クライアントが再び新しいURLを要求し、サーバがサーバよりも新しいページを返す.Transferは1回以上応答します.
一般的に2ページの間でデータを共有する必要があり、データ量が大きい場合はtransferが適切で、2ページ目で前のページのデータを直接使用することができます.
eg:
TransferToPage.aspx
if(Context.Handler is TransferFromPage)
{
TransferFromPage post=(TransferFromPage)Context.Handler;
startWeekID=Int32.Parse(post.DdlStartWeek.SelectedValue);
endWeekID=Int32.Parse(post.DdlEndWeek.SelectedValue);
}
前のページコントロールの値を直接参照します.
Redirectは、いくつかの小さな文字列値を渡すことができます.
Response.Redirect( "b.aspx?id=0&name=Jeff ");