/// <summary> /// outputs the querystring object to a string /// </summary> /// <returns>the encoded querystring as it would appear in a browser</returns> public override string ToString() { var builder = new StringBuilder(); for (var i = 0; i < base.Keys.Count; i++) { if (!string.IsNullOrEmpty(base.Keys[i])) { foreach (string val in base[base.Keys[i]].Split(',')) { builder.Append((builder.Length == 0) ? "?" : "&").Append(HttpUtility.UrlEncodeUnicode(base.Keys[i])).Append("=").Append(val); } } } return(builder.ToString()); }
/// <summary> /// adds a name value pair to the collection /// </summary> /// <param name="name">the name</param> /// <param name="value">the value associated to the name</param> /// <param name="isUnique">true if the name is unique within the querystring. This allows us to override existing values</param> /// <returns>the QueryString object </returns> public QueryString Add(string name, string value, bool isUnique) { string existingValue = base[name]; if (string.IsNullOrEmpty(existingValue)) { base.Add(name, HttpUtility.UrlEncodeUnicode(value)); } else if (isUnique) { base[name] = HttpUtility.UrlEncodeUnicode(value); } else { base[name] += "," + HttpUtility.UrlEncodeUnicode(value); } return(this); }