UrlString provides a simple wrapper around URLs, both relative and absolute. Many Sitecore UI components receive data from querystring parameters, and UrlString provides convenient method for constructing URLs with querystring parameters.
Assembling an URL:
UrlString url = new UrlString("/path/to/mypage.aspx"); url["id"] = "{some-id}"; url["db"] = "master"; string result = url.ToString(); // "/path/to/mypage.aspx?id=some-id&db=master"
Tweaking existing url:
UrlString url = new UrlString("/path/to/mypage.aspx?id=some-id&db=master"); url["db"] = "web"; url["mode"] = "new"; string result = url.ToString(); // "/path/to/mypage.aspx?id=some-id&db=web&mode=new"
Some methods in Sitecore API accept UrlString to add more data. ItemUri class can embed itself in a UrlString, so that you can pass information uniquely identifying a Sitecore item in a URL:
UrlString url = new UrlString("page.aspx"); Sitecore.Context.Item.Uri.AddToUrlString(url); string result = url.ToString(); // "page.aspx?id={id}&la=en&v=1&db=master"
Compared to System.Uri, Sitecore's UrlString is very lax in accepting any kinds of input and giving it back.
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.