2010-04-21 64 views
42

如何使用Server.Transfer()執行重定向到當前顯示的頁面?重定向到ASP.Net中的當前頁面

我想提交後有一個清除表格。

我還可以使用其他什麼/更好的方法來實現?

+1

如果你只想在提交之後清除表單,那麼最後只需在你的代碼中清除所有的字段值,而不是重新導入到相同的頁面 – 2013-09-30 18:15:18

回答

96

爲什麼Server.TransferResponse.Redirect(Request.RawUrl)會得到你所需要的。

+0

我認爲Server.Transfer是更好的選擇。但是你的解決方案也能做到這一點。我現在使用Server.Transfer(Request.Path); – Fabiano 2010-04-21 16:54:16

+11

@Daniel:這不是一次浪費的往返旅程。通常情況下,您不希望用戶瀏覽器頁面堆棧中的最後一個請求是HTTP POST的結果。用戶通常會刷新並重復該操作。轉移沒有解決,但重定向。 – kervin 2010-04-21 17:04:17

+6

@Daniel:確實,曾聽說過Post-Redirect-Get模式?如果不是這裏的一些信息給你:http://en.wikipedia.org/wiki/Post/Redirect/Get – epitka 2010-04-21 17:34:20

15

http://en.wikipedia.org/wiki/Post/Redirect/Get

實現在ASP.Net這種模式最常見的方式是使用的Response.Redirect(Request.RawUrl)

考慮differences between Redirect and Transfer。轉移真的不告訴瀏覽器轉發到一個明確的形式,它只是返回一個清除的形式。這可能是也可能不是你想要的。

Response.Redirect()不浪費往返。如果您發佈的腳本通過Server.Transfer()清除表單並重新加載,您將被要求由大多數瀏覽器轉發,因爲上一個操作是HTTP POST。這可能會導致用戶無意中重複某些操作,例如。發出第二份訂單,這將在稍後作廢。

相關問題