呼び出しページ(最初のページ)と呼び出し元ページ(新しいページ)の要求に対してどちらが良いか影響があるか混乱しています...Server.Transfer()対。
私は両方のケースで、URLブラウザには最初のページのURLが残っています(新しいページのURLに更新されません)。
にかなりのコメント....
呼び出しページ(最初のページ)と呼び出し元ページ(新しいページ)の要求に対してどちらが良いか影響があるか混乱しています...Server.Transfer()対。
私は両方のケースで、URLブラウザには最初のページのURLが残っています(新しいページのURLに更新されません)。
にかなりのコメント....
のorignal:Server.TransferをとのServer.Execute両方が従来のASP 3.0で導入され(まだASP.NETで動作)しDifference between Server.Transfer and Server.Execute
。
Server.Executeを使用すると、URLがパラメーターとして渡され、コントロールがこの新しいページに移動します。コードの実行は新しいページで行われます。コードの実行が終了すると、コントロールは呼び出された直後の最初のページに戻ります。しかし、Server.Transferの場合、それは非常に同じように動作します。違いは、新しいページ自体で実行が停止していることです(つまり、呼び出し元のページにコントロールが返されていないことを意味します)。
どちらの場合でも、ブラウザのURLは、ブラウザが要求していないため、最初のページURL(新しいページURLに更新しません)のままです。
私はこれが古いと知っていますが、Googleで検索したときに第1ヒットまたは第2ヒットとなりました。私はいくつかのテストを行い、結果を投稿したかったのです。
2ページのウェブサイトを作成しました。 1ページ目のページの読み込みはコードが含まれてい...
try {
//Response.Redirect("~/WebForm2.aspx");
//Server.Transfer("~/WebForm2.aspx");
//Server.Execute("~/WebForm2.aspx");
//Server.TransferRequest("~/WebForm2.aspx");
string strTry = "Try";
} catch (Exception) {
string strCatch = "Catch";
} finally {
string strFinally = "Finally";
}
それはそれぞれに何をしたかの順序は本当に面白かったものです...
Command Sequence Redirect Call, Catch (ThreadAbortException), Finally, Load Page 2 Transfer Call, Load Page 2, Catch (ThreadAbortException), Finally Execute Call, Load Page 2, Try (continues), Finally TransferRequest Call, Try (continues), Finally, Load Page 2
...それは何を知っているに役立つかもしれないので
個人的に私は、次のページのコードが始まる前に、現在のコードが終了したという考えが気に入っています。したがって、RedirectまたはTransferRequestのどちらかを使用しますが、後者の場合は、実際にtryブロックの残りの部分を実行しないようにする場合は、呼び出しのすぐ下に「return」を追加する必要があります。
私はこれがあなた
Server.Transferをを助けるかもしれないと思う
Server.Transferのは、別のページに1ページからコントロールを転送するために使用されます。別のページでコードを実行しますが、コントロールは前のページに戻りません。 この場合、URLはブラウザで変更されません。 アプリケーションの外部ページにナビゲートすることはできません。 構文:Server.Transfer( "別のページのURL"); 新しいページの前のページコントロールにアクセスできます。 前のページ.FindControl()は新しいページで利用できます。 余分なラウンドトリップを避けることによってサーバーリソースを節約します。
のServer.Execute
のServer.Executeは、別のページ1つのページからの制御を転送するために使用されます。別のページでコードを実行し、前のページに戻るように制御します。 この場合、URLはブラウザで変更されません。 アプリケーションの外部ページにナビゲートすることはできません。 構文:Server.Execute( "別のページのURL"); 新しいページの前のページコントロールにアクセスできます。 前のページ.FindControl()は新しいページで利用できます。 余分なラウンドトリップを避けることによってサーバーリソースを節約します。
http://stackoverflow.com/questions/521527/response-redirect-vs-server-transfer –
@Thit - のResponse.Redirectは何か他のもの – StuartLC
@ThitLwinOoで、彼はServer.Execute'対Server.Transferの 'について質問します、 'Response.Redirect vs. Server.Transfer'ではありません。 –