Asp.net

HttpUtility.ParseQueryString 的反向函式

  • December 19, 2014

.Net 的System.Web.HttpUtility類定義了以下函式來將查詢字元串解析為NameValueCollection

public static NameValueCollection ParseQueryString(string query);

是否有任何功能可以做相反的事情(即將 aNameValueCollection轉換為查詢字元串)?

NameValueCollection 有一個自動 ToString() 方法,它會自動將所有元素作為查詢字元串寫出。

你不需要自己寫。

var querystringCollection = HttpUtility.ParseQueryString("test=value1&test=value2");

var output = querystringCollection.ToString(); 

輸出=“測試=值1&測試=值2”

System.Collections.Specialized.NameValueCollection支持這一點,但派生的內部類支持System.Web.HttpValueCollection **(**通過覆蓋ToString())。

不幸的是(是內部的)你不能直接實例化這個類,但是一個被返回HttpUtility.ParseQueryString()(你可以用String.Empty,但不是Null)。

一旦你有了一個,你可以在最後呼叫之前通過呼叫HttpValueCollection從你的原始文件中填充它。NameValueCollection``Add()``ToString()

var nameValueCollection = new NameValueCollection {{"a","b"},{"c","d"}};
var httpValueCollection = System.Web.HttpUtility.ParseQueryString(String.Empty);
httpValueCollection.Add(nameValueCollection);
var qs = httpValueCollection.ToString();

nameValueCollection.ToString() = “System.Collections.Specialized.NameValueCollection” httpValueCollection.ToString() = “a=b&c=d”

引用自:https://stackoverflow.com/questions/2605268