/// <summary> /// Construct the QueryString object from an existing NameValueCollection /// </summary> /// <param name="nvc">the NameValueCollection</param> /// <param name="encoding">The encoding, or lack of one, that already exists for the passed NameValueCollection</param> /// <remarks>If there is a URL set the URL property independently and don't /// forget to set IsHTTP too. Encoding should be used to set the pre-existing encoding for the passed querystring. /// Note that this is not the encoding to which you want the data converted but the encoding that the data is already in.</remarks> public QueryString(NameValueCollection nvc, QueryStringEncoding encoding) { this.encoding = encoding; foreach (string key in nvc.Keys) { base.Add(key, nvc[key]); } }
/// <summary> /// Construct using string having key=value pair format with or without prefixing URL /// </summary> /// <param name="queryString">the querystring</param> /// <param name="encoding">The encoding, or lack of one, that already exists for the passed NameValueCollection</param> /// <remarks>Encoding should be used to set the pre-existing encoding for the passed querystring. /// Note that this is not the encoding to which you want the data converted but the encoding that the data is already in.</remarks> public QueryString(string queryString, QueryStringEncoding encoding) { this.queryString = queryString.Trim(); this.IsHTTPS = false; this.url = QueryString.ParseUrl(this.queryString, ref this.IsHTTPS); PopulateCollection(); this.encoding = encoding; }
private void Decode(QueryStringEncoding encoding) { for (int i = 0; i < this.Keys.Count; i++) { string newval = null; if (encoding == QueryStringEncoding.Html) { newval = HttpUtility.HtmlDecode(this[Keys[i]]); } else { newval = HttpUtility.UrlDecode(this[Keys[i]]); } this[Keys[i]] = newval; } }