2012-08-23 90 views
0

我想從C#中的編碼URL獲取值。因此,例如,我試圖從得到 「的customerID」:從編碼的URL獲取價值

http://<DOMAIN>/default.aspx%3FcustomerID%3D12345%26reference%3D2222 

我試過如下:

string customerID = HttpUtility.UrlDecode(Request.QueryString["customerID"]); 

但它回來NULL。什麼是得到這個值的正確方法?

感謝 周杰倫

+0

首先對網址進行解碼,但找不到查詢字符串「customerID」。 –

回答

0

您的應用程序應該被編碼?和=標誌。請求變量通常由iis在將信息傳遞給處理請求的應用程序之前設置。您需要發送應該編碼的值,但不是整個網址。如果你的網址看起來像, ?customerID = 1234我想它會起作用,問題不在於你的代碼,而在於如何構造url。

+0

OP正在嘗試從**已經**編碼的URL中提取值 - 不確定你的答案是他們想要的... – Tim

+0

謝謝,但是我的URL已經編碼並且正在尋找解析值。它必須被編碼,因此不能切換到未編碼。 – jkard883

1
string str = " http://DOMAIN/default.aspx%3FcustomerID%3D12345%26reference%3D2222"; 

var url = HttpUtility.UrlDecode(str); 
var parameters = HttpUtility.ParseQueryString(new Uri(url).Query); 
var id = parameters["customerID"]; 
+0

這工作完美!正在想辦法做到這一點,並沒有意識到ParseQueryString功能。謝謝! – jkard883