2011-01-13 8 views
1

私は2つのテキストボックスとボタンとそれをクリックするとカレンダーを開くためのボタンとHrefタグを持っています。同じことは、私は別のページなぜServer.TransferなぜResponse.Redirectだけ

に、私はこれがきれいに動作しますが、私は2ページ目にSever.Tranferを使用している場合私はRespose.Redirect

protected void Button1_Click3(object sender, EventArgs e) 
{ 
    Response.Redirect("Demo/Default.aspx");//Works fine 
    //Server.Tranfer("Demo/Default.aspx"); // Does not works 
} 

を使用して、次のように特定のページに転送するためのコードを記述していユーザがServer.Tを使用して別のページ に転送、

答えて

2

http://www.developer.com/net/asp/article.php/3299641/ServerTransfer-Vs-ResponseRedirect.htm

まずHrefのタグをクリックすると、カレンダー・コントロールをロードできません転送はサーバー リソースを節約します。 ブラウザにリダイレクトする代わりに、単に をWebサーバーの「フォーカス」に変更し、 が要求を転送するだけです。これは、 が多くのHTTPリクエストを受信しないことを意味します。したがって、 はWebサーバーの負荷を軽減し、 はアプリケーションの実行を速くします。

しかし、気を付ける:「転送」 プロセスがサーバー上で実行されているサイトのみ を上で動作することができますので、あなたが 外部のサイトにユーザーを送信するために Server.Transferを使用することはできません。 Response.Redirectのみ それを行うことができます。

第2に、Server.Transferは、元のURLをブラウザに に維持します。この は、デバッグ時に の混乱を招くことがありますが、実際にはデータ入力を効率化するのに役立ちます( )。

これはすべてではありません。Server.Transfer メソッドも、2番目の パラメータ「preserveForm」を持っています。あなたがServer.Transferを(「WebForm2.aspx」、 真)、既存のクエリ文字列と として声明など を使用して、Trueに これを設定した場合どのような形態では、変数は、まだあなたに転送 をしているページが利用できる になります。あなたのWebForm1.aspxがTextBox1テキストボックスと呼ばれる TextBoxコントロールを持っているとあれば

は、たとえば、 あなたは Trueに設定preserveFormパラメータでWebForm2.aspxに転送し、元の 値を取得することができるだろうページTextBox Request.Form( "TextBox1")を参照してコントロール。

関連する問題