HttpContext.Current.Server.UrlEncode
Ini hanya berfungsi di .NET Framework. Bagaimana cara menyandikan atau memecahkan kode argumen uri dalam proyek ASP.NET Core?
c#
asp.net-core
asp.net-core-mvc
wtf512
sumber
sumber
HttpContext.Current
tetapiHttpContext
merupakan bagian dari .Net Core -Microsoft.AspNetCore.Http.HttpContext
. Ingat iniJawaban:
Untuk ASP.NET Core 2.0+ cukup tambahkan
System.Net
namespace -WebUtility
kelas dikirimkan sebagai bagian dariSystem.Runtime.Extensions
paket nuget, yang direferensikan secara default dalam proyek ASP.NET Core.Untuk versi sebelumnya tambahkan
Microsoft.AspNetCore.WebUtilities
paket nuget.Kemudian
WebUtility
kelas akan tersedia untuk Anda:sumber
Ini tersedia pada versi 2.0.0 dari .Net Core SDK , di
System.Net.WebUtility.UrlEncode
( lihat dokumentasi )sumber
System.Net.WebUtility.UrlEncode
: spasi dikodekan dengan a+
. Saya biasaUri.EscapeDataString
menyandikan dengan%20
.Untuk ASP.Net Core 2.0+ dan jika Anda memerlukan spasi untuk dikodekan sebagai
%20
sebagai lawan
+
;Menggunakan:
sumber
Jangan buang waktu Anda, saya punya banyak pengalaman dengan yang disebut pembuat enkode url ini, semuanya tidak berguna, dan memiliki kebiasaan yang berbeda. Misalnya WebUtility.UrlEncode tidak menangani tanda "+".
Jika Anda ingin menyandikan parameter URL, gunakan pengkodean BASE58. Ini hanya menggunakan huruf alfabet + angka, jadi Anda tidak perlu menyandikan url.
sumber
WebUtility.UrlEncode
dan secara menakjubkan mengubah tanda plus ("+") menjadi "% 2B". Saya menggunakan .NET Core 3.1.Saya menggunakan pengalihan , dan UrlEncode tidak berfungsi untuk saya karena mengkodekan seluruh url. Saya menyelesaikan ini dengan menggunakan UriHelper.Encode, yang ditunjukkan di bawah ini.
UriHelper.Encode
sumber