Uri.EscapeDataString or HttpUtility.UrlEncode is the correct way to escape a string meant to be part of a URL.
Take for example the string "Stack Overflow":
-
HttpUtility.UrlEncode("Stack Overflow")–>"Stack+Overflow" -
Uri.EscapeUriString("Stack Overflow")–>"Stack%20Overflow" -
Uri.EscapeDataString("Stack + Overflow")–> Also encodes"+" to "%2b"—->Stack%20%2B%20%20Overflow
Only the last is correct when used as an actual part of the URL (as opposed to the value of one of the query string parameters)