2010-09-23 73 views
1

我試圖通過單擊按鈕來更改當前aspx頁面的URL更改爲其他URL。使用Request.Url.AbsoluteUri我可以得到的網址,但有可能修改?如果是的話,我會採取什麼行動,這將是一個新的要求或回發。從後面的代碼更改asp.net頁面的網址

請讓我知道您的意見。

感謝, MEHUL makwana

+1

取決於你想要達到的目標;你是否試圖將瀏覽器重定向到新頁面,或將處理轉移到其他頁面? – 2010-09-23 12:09:40

回答

4

不,這不可能從後面的代碼修改當前頁面的URL。

代碼運行時,新的請求或回發已在進行中,所以一旦新響應完成,當前頁面將不再存在。

當瀏覽器中加載當前正在創建的頁面時,將使用它的URL代替當前頁面的URL。此URL已在請求前決定,因此您無法更改。

您可以做的是使用Response.Redirect方法,通過所需的URL返回一個重定向頁面到瀏覽器。然後,瀏覽器會向服務器發出另一個請求,以獲取包含該URL的頁面。

如果您想更改頁面的URL而不使用重定向,則在代碼後面執行該操作爲時已晚。您必須更改按鈕使用客戶端腳本所做的操作,以便直接請求新的URL而不進行回發。

+0

heyy這是你的好消息。那麼通過使用客戶端JavaScript你的意思是說使用window.location.href函數,但即使這創造了新的要求,我認爲。 – mehul9595 2010-09-23 12:29:09

+0

@ mehul9595:是的,如果您想要更改瀏覽器在地址欄中顯示的網址,則新的請求是唯一的方法。 – Guffa 2010-09-23 12:39:55

+0

因此,提出新的請求會導致性能問題。你有沒有其他的方式來做到這一點。否則,我將只與這一個去。 – mehul9595 2010-09-23 13:09:04

3

您可以使用Response.Redirect()Server.Transfer(),雖然我會使用前者,而不是後者。

1

它將是new request

你可以嘗試用Response.RedirectServer.Transfer

+0

這將導致回發。是否有可能沒有回發? – KhanS 2010-09-23 12:16:31

+0

謝謝,我現在很清楚。 – mehul9595 2010-09-23 12:22:15

+0

沒有。如果你想移動到其他網址,你需要做回發。那麼只有所有的控件都會啓動 – anishMarokey 2010-09-23 12:45:18

2

考慮使用jQuery或類似的庫 - 它將允許您修改頁面的DOM。如果您只能在服務器上生成新的URL,請考慮向服務器發送ajax請求。 Web方法將返回一些自定義對象,其中將包含一個新的URL。您將使用Web方法返回的數據,並使用jQuery或任何類似的庫來替換它。

+0

嘿,你可以給任何參考鏈接或代碼片段,我沒有得到你的意思說。 – mehul9595 2010-09-23 13:08:07

+0

想法是,你點擊一個鏈接。 Web瀏覽器通過jQuery對Web方法(Web服務)進行AJAX調用。Web服務查看您的請求,決定要執行的操作,構建一個新的URL並將其發送回最初發送請求的函數。在函數中讀取返回的數據(URL)並替換現有的URL。 – 2010-09-23 19:13:09

相關問題