2017-10-07 83 views
0

當使用javascript:location.replace和Hyperlink.NavigateUrl時,它可以很好地工作。如何使用javascript:location.replace with response.redirect

例如,這個偉大的工程:

HyperLinks.NavigateUrl = "javascript:location.replace('step3.aspx?Time=" + i + "');"; 

這並不在所有的工作:

Response.Redirect("javascript:location.replace('step3.aspx?Time=" + i + "'); return false;"); 

這似乎僅僅只是回發到自身或什麼都不做。

什麼是我應該使用正確的語法,或者,有沒有其他選擇?

+0

使用

2017-10-07 21:36:27

+0

我用一個asp:按鈕觸發,點擊時,對sql數據庫進行更新,發送一封電子郵件,然後在完成時重定向到另一個頁面。所有的代碼在後面,嚴格的asp.net。 – smdevivo

+0

如果你想做同樣的事情發佈一些東西來更新SQL,然後得到一個沒有任何刷新的響應只是你的數據更新和選擇的結果。您需要使用ajax發佈並獲取數據作爲響應。你的ASP.net頁面需要發送頭文件內容類型爲「text/json」,對象Json作爲返回數據庫請求中的對象...等 – 2017-10-07 21:50:29

回答

1

您很可能想要使用Response.Redirect方法。您的示例可能的語法是:

Response.Redirect(String.Format("step3.aspx?Time={0}", i), false); 

重定向方法的第一個參數是絕對或相對URL。

但是,重定向方法會將條目放入瀏覽器的歷史記錄中,而您的原始JavaScript方法不會。解決此問題的方法,如果是重要的,是使用的Server.Transfer方法:

Server.Transfer(string.Format("step3.aspx?Time={0}", i)); 

但在這種情況下,瀏覽器顯示將不會更改爲「step3.aspx」的URL。你必須決定哪個更適合你。

相關問題