Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengendalikan Garis miring Berkod URL dalam Penghalaan ASP.NET?

Bagaimana untuk Mengendalikan Garis miring Berkod URL dalam Penghalaan ASP.NET?

Patricia Arquette
Lepaskan: 2025-01-05 01:34:40
asal
754 orang telah melayarinya

How to Handle URL-Encoded Slashes in ASP.NET Routing?

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
Salin selepas log masuk

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));
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan