HttpContext.Current.Server.UrlEncode
Só funciona no .NET Framework. Como posso codificar ou decodificar argumentos uri no projeto ASP.NET Core?
c#
asp.net-core
asp.net-core-mvc
wtf512
fonte
fonte
HttpContext.Current
masHttpContext
faz parte do .Net Core -Microsoft.AspNetCore.Http.HttpContext
. Lembre-se dissoRespostas:
Para ASP.NET Core 2.0+, basta adicionar o
System.Net
namespace - aWebUtility
classe é fornecida como parte doSystem.Runtime.Extensions
pacote nuget, que é referenciado por padrão no projeto ASP.NET Core.Para a versão anterior, adicione o
Microsoft.AspNetCore.WebUtilities
pacote nuget.Então a
WebUtility
aula estará disponível para você:fonte
Está disponível na versão 2.0.0 do .Net Core SDK , em
System.Net.WebUtility.UrlEncode
( veja a documentação )fonte
System.Net.WebUtility.UrlEncode
: os espaços são codificados com a+
. Eu costumavaUri.EscapeDataString
codificar com%20
.Para ASP.Net Core 2.0+ e se você precisar de espaços para serem codificados como
%20
em oposição a
+
;Usar:
fonte
Não perca seu tempo, tenho muita experiência com esses chamados codificadores de URL, todos são inúteis e têm peculiaridades diferentes. Por exemplo, WebUtility.UrlEncode não aceita o sinal "+".
Se você deseja codificar parâmetros de URL, use uma codificação BASE58. Ele usa apenas letras do alfabeto + números, portanto, você não precisa codificar url.
fonte
WebUtility.UrlEncode
e converteu maravilhosamente um sinal de mais ("+") em "% 2B". Estou usando o .NET Core 3.1.Estou usando um redirecionamento e UrlEncode não funcionou para mim porque ele codifica todo o url. Resolvi isso usando UriHelper.Encode, mostrado abaixo.
UriHelper.Encode
fonte