2011-04-14 38 views
2

我們有一個運行在2.0框架上的舊的.net網站。在這個網站中,有多個調用需要時通過調用response.redirect()重定向。出於某種原因,我無法弄清楚「角色已經停止映射到根目錄 - 並且實際上顯示爲路徑的一部分。例如:Tilde在URL中顯示而不是映射到根

Response.Redirect("~/shopping/checkout_confirm.aspx?rc=" & 
    MyPayment.ResponseCode & "&rt=" & MyPayment.ResponseText) 

現在結束了試圖重定向到:

https://www.site.com/shopping/~/shopping/checkout_confirm.aspx?rc=3

我曾嘗試以下藏漢,沒有運氣:

Response.Redirect(Page.ResolveUrl("~/shopping/checkout_confirm.aspx?rc=" & 
    MyPayment.ResponseCode & "&rt=" & MyPayment.ResponseText)) 

當在開發運行環境網址映射正確...任何想法是什麼可能是這個問題的原因/解決辦法?

+3

你的MyPayment.ResponseText中有什麼?這可能是因爲它的價值讓事情變得糟糕。你可能需要URLEncode它。 – patmortech 2011-04-14 13:50:30

+1

是在您的網站購物的目錄,還是它在IIS(應用程序)中的虛擬目錄?你的'Page.ResolveUrl'調用的結果是什麼? – theChrisKent 2011-04-14 14:02:17

+0

檢查這個線程,我希望這會幫助你http://stackoverflow.com/questions/31221/response-redirect-using-path – 2011-04-14 14:06:26

回答

0

這個responseText的部分包含需要被編​​碼的字符。

-1

嘗試使用相對路徑來代替:

Response.Redirect("checkout_confirm.aspx?rc=" & MyPayment.ResponseCode & "&rt=" & MyPayment.ResponseText) 
+3

這將適用於該示例 - 但無法從該網站的根目錄映射。它不適用於重定向的所有用途。 – cschear 2011-04-14 13:44:21