2012-07-26 83 views

回答

25

這可能是你追求的

Uri theRealURL = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl); 

    string yourValue= HttpUtility.ParseQueryString(theRealURL.Query).Get("yourParm"); 
+1

真的嗎?這一切是否真的有必要? – james31rock 2012-07-26 20:13:57

+0

這是我想要的東西。 – GilliVilla 2012-07-26 23:02:43

+2

@ james31rock yes..really :)問題不是那麼明顯,一些天才已經低估了它...... rawurl需要這樣處理。其他人提到的是默認查詢字符串。 – GilliVilla 2012-07-26 23:03:58

6

不需要經過RawUrl - Request對象已包含使用Request.QueryString屬性的解析版本。

這是一個索引NameValueCollection

+3

他特別要求如何在RawUrl上做到這一點。 RawUrl查詢字符串和Request.QueryString在某些情況下不相關,例如,如果您正在進行URL重寫。他使用RawUrl的事實是他使用URL重寫的強烈暗示。 – NickG 2014-07-09 08:59:13

+0

在過去,我也使用了'Request.Params'(由@Piotr建議),在某些情況下罰款。在其他情況下,我已按照@Oded的建議切換到Request.QueryString。 'Request.QueryString'不會觸發參數驗證,例如當您接受HTML作爲輸入時您可能想避免參數驗證。 – Manfred 2015-10-05 20:18:29

0

Request對象上有Params屬性,可讓您輕鬆完成。你不必自己解析它。

0

試試這個:

string rawURL = HttpContext.Current.Request.ServerVariables["query_string"];

-3

這將解決你的問題.....

string strReq = ""; 
strReq = HttpContext.Current.Request.RawUrl; 
strReq = strReq.Substring(strReq.IndexOf('?') + 1); 
相關問題