2016-07-28 103 views
3

使用C#從相對URL字符串中獲取特定參數的最有效方法是什麼?如何從C#中的相對URL字符串獲取參數?

例如,你怎麼會從以下相對URL字符串得到ACTION參數的值:

string url = "/page/example?ACTION=data&FOO=test"; 

使用我已經嘗試:

var myUri = new Uri(url, UriKind.Relative); 
String action = HttpUtility.ParseQueryString(myUri.Query).Get("ACTION"); 

不過,我得到以下錯誤:

This operation is not supported for a relative URI.

+0

您是否嘗試過Request.QueryString [「ACTION」]? – Kami

+0

如果您使用的是asp.net,請使用[HttpRequest上的QueryString屬性](https://msdn.microsoft.com/en-us/library/system.web.httprequest.querystring(v = vs.110))。 ASPX)。 –

+0

URL字符串來自數據庫,而不是來自瀏覽器,所以我不認爲使用HttpRequest會起作用? – Wellspring

回答

4
int idx = url.IndexOf('?'); 
string query = idx >= 0 ? url.Substring(idx) : ""; 
HttpUtility.ParseQueryString(query).Get("ACTION"); 
+0

謝謝,使用IndexOf和Substring工作。我還沒有用URIBuilder嘗試過。 – Wellspring

+7

第二種使用UriBuilder的解決方案不適用於相對路徑。它期望構造函數參數URL有主機。 [UriBuilder幫助](https://msdn.microsoft.com/en-us/library/y868d5wh(v = vs.110).aspx) –

相關問題