2016-06-23 40 views
2

這可能是一個簡單的問題,但我在查詢字符串中與returnurl掙扎。我知道如何將查詢字符串中的returnurl調用到Response.Redirect中,但我不確定如何將returnurl設置爲某個url。有人能給我一個如何做到這一點的例子嗎?指定returnURL在查詢字符串

+0

喜歡的東西[這](http://www.dotnetperls.com/querystring) –

+1

點點混亂,你可以請更具體 –

+0

這將是奇怪的,你想要在後端指定返回url,當它是後端的作業,以迴應該返回url請求.... –

回答

1

我有一個建議給你,我相信它有多適合你的情況。

讓我定義一個靜態Dictionary<string,string>來保存一些關鍵和相應的URL。由於它是靜態定義的,您可以從其他所有頁面訪問它,因此此變量將獲得應用程序範圍。即,

public static Dictionary<string, string> URLDictonary = new Dictionary<string, string>() 
             { 
              {"google","http://google.com/"}, 
              {"dotnet","http://www.dotnetperls.com/"},  
              {"querystring","http://www.dotnetperls.com/querystring"} 
             }; 

因此,您可以將key名稱與URL作爲查詢字符串附加。它可能看起來像下面這樣:

Response.Redirect("~/Somepage.aspx?returnURL=google"); 
// Which means you are passing the key as query string 

現在你可以在樣頁得到這個key並重定向到基於密鑰的特定頁面,如下所示:

string returnURL = Request.QueryString["returnURL"]; 
if (returnURL != null) 
{ 
    Response.Redirect(URLDictonary[returnURL]); 
} 

由於我們傳遞google它會重定向到相應的值,即。 "http://google.com/"

注意:您可以使用自己的密鑰和Url來創建類似的詞典。如果在不同的類中定義,然後使用class_name.DictonaryName[querystring_value]

1

你能做到這一點,如下所示:

var url = Request.Url.ToString(); 
var uri = String.Format("http://example.com?page={0}", url); 
Response.Redirect(uri); 

的代碼非常簡單。

+2

在執行此操作之前,您需要對url進行編碼,以確保正確處理特殊字符。 – Chris