2010-12-03 66 views
2
之後顯示

當我使用不正確的URL的Response.Redirect

Server.Transfer的( 「PageName.aspx」);

我轉移到正確的頁面,但url是第一頁的網址。

換句話說,就是說page1.aspx Server.Transfers to page2.aspx

page2.aspx is rendered,but the url reads page1.aspx

問題是我需要在url中傳遞參數到page2,並且params沒有通過。

我周圍有使用

的Response.Redirect( 「PageName.aspx PARM = VAL?」);

我一直在使用Server.Transfer,因爲我覺得它的效率更高。

其他區別是什麼?是否有任何其他原因使用一個而不是另一個?

到目前爲止,我有:

使用Response.Redirect

  1. ,如果你想,如果你要轉移到另一個網站服務器

使用上通過PARMS

  • Server.Transfer for

    1. 節省一個服務器往返的效率
  • 回答

    3

    你是對的,Server.Transfer更高效,因爲它消除了服務器和瀏覽器之間的往返。 Response.Redirect將重定向響應發送回瀏覽器,迫使瀏覽器使用重定向的URL將新請求發送回服務器。 Response.Redirect允許瀏覽器知道重定向的URL是什麼,並將其顯示在地址欄中。在Server.Transfer的情況下,瀏覽器不知道響應來自不同的頁面。

    0

    Server.Transfer應該保持地址欄中的URL相同;這是定義的行爲。如果您想更改URL,使用Response.Redirect執行此操作的方式是正確的。

    5

    嘛,一定會有更詳細,可能更正確的答案不是這個,但是......

    的Server.Transfer:

    瀏覽器:嘿服務器,我想pageOne.aspx!

    服務器: Suuuuure,在這裏你去(偷偷摸摸的笑)。 (返回pageTwo.aspx)

    的Response.Redirect:

    瀏覽器:嘿服務器,我想pageOne.aspx!

    服務器:其實,你想pageTwo.aspx。

    瀏覽器:哦......好吧。我可以請有pageTwo.aspx?

    服務器:沒錯。 (returns pageTwo.aspx)

    +0

    +1因思維不同而有效。 – Vishal 2010-12-03 19:26:47