Serikan Berkod URL dalam URL
Apabila cuba mengakses URL yang mengandungi sengkang berkod (/), seperti http:// localhost:5000/Home/About/100/200, konfigurasi penghalaan lalai mungkin gagal untuk memadankan laluan.
Satu penyelesaian yang berpotensi adalah dengan memasukkan parameter catch-all dalam templat URL, seperti yang ditunjukkan di bawah:
routes.MapRoute( "Default", // Route name "{controller}/{action}/{*id}", // URL with parameters new { controller = "Home", action = "Index", id = "" }); // Parameter defaults
Pelarasan ini membenarkan sebarang siri segmen laluan ditangkap dalam parameter id, termasuk garis miring. Walau bagaimanapun, pendekatan ini mungkin tidak sesuai untuk semua senario.
Pilihan lain, terutamanya jika garis miring yang dikodkan adalah sebahagian daripada satu parameter, adalah untuk melaksanakan logik pengekodan dan penyahkodan tersuai. Ini boleh dicapai melalui kelas tersuai seperti yang disediakan di bawah:
public class UrlEncoder { public string URLDecode(string decode) { if (decode == null) return null; if (decode.StartsWith("=")) { return FromBase64(decode.TrimStart('=')); } else { return HttpUtility.UrlDecode( decode) ; } } public string UrlEncode(string encode) { if (encode == null) return null; string encoded = HttpUtility.PathEncode(encode); if (encoded.Replace("%20", "") == encode.Replace(" ", "")) { return encoded; } else { return "=" + ToBase64(encode); } } public string ToBase64(string encode) { Byte[] btByteArray = null; UTF8Encoding encoding = new UTF8Encoding(); btByteArray = encoding.GetBytes(encode); string sResult = System.Convert.ToBase64String(btByteArray, 0, btByteArray.Length); sResult = sResult.Replace("+", "-").Replace("/", "_"); return sResult; } public string FromBase64(string decode) { decode = decode.Replace("-", "+").Replace("_", "/"); UTF8Encoding encoding = new UTF8Encoding(); return encoding.GetString(Convert.FromBase64String(decode)); } }
Kelas ini membolehkan anda mengekod dan menyahkod rentetan dengan cara tersuai, memastikan aksara khas seperti garis miring dikendalikan dengan betul sambil mengekalkan kebolehbacaan dan kebolehgunaan.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Garis miring Berkod URL dalam Penghalaan ASP.NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!