URL Encode and Decode in ASP.NET Core
For ASP.NET Core 2.0+ just add
System.Net
namespace -WebUtility
class is shipped as part ofSystem.Runtime.Extensions
nuget package, that is referenced by default in ASP.NET Core project.For the previous version add
Microsoft.AspNetCore.WebUtilities
nuget package.
Then the WebUtility
class will be available for you:
public static class WebUtility
{
public static string UrlDecode(string encodedValue);
public static string UrlEncode(string value);
}
It's available on version 2.0.0 of the .Net Core SDK, in System.Net.WebUtility.UrlEncode
(see documentation)
For ASP.Net Core 2.0+ and if you need spaces to be encoded as %20
as opposed to +
;
Use:
Uri.EscapeDataString(someString);
I'm using a redirect, and UrlEncode did not work for me because it encodes the entire url. I solved this by instead using UriHelper.Encode, shown below.
UriHelper.Encode
// generate url string...
return Redirect(Microsoft.AspNetCore.Http.Extensions.UriHelper.Encode(new System.Uri(url)));