Heim >Backend-Entwicklung >C++ >Wie gehe ich mit URL-codierten Schrägstrichen beim ASP.NET-Routing um?
URL-codierter Schrägstrich in der URL
Beim Versuch, auf eine URL zuzugreifen, die einen codierten Schrägstrich (/) enthält, z. B. http:// localhost:5000/Home/About/100/200, die Standard-Routing-Konfiguration stimmt möglicherweise nicht mit der Route überein.
Eins Eine mögliche Lösung besteht darin, einen Catch-All-Parameter in die URL-Vorlage aufzunehmen, wie unten gezeigt:
routes.MapRoute( "Default", // Route name "{controller}/{action}/{*id}", // URL with parameters new { controller = "Home", action = "Index", id = "" }); // Parameter defaults
Diese Anpassung ermöglicht die Erfassung einer beliebigen Reihe von Pfadsegmenten im ID-Parameter, einschließlich Schrägstrichen. Allerdings ist dieser Ansatz möglicherweise nicht für alle Szenarien geeignet.
Eine weitere Option, insbesondere wenn der codierte Schrägstrich Teil eines einzelnen Parameters ist, besteht darin, eine benutzerdefinierte Codierungs- und Decodierungslogik zu implementieren. Dies kann durch eine benutzerdefinierte Klasse wie die unten bereitgestellte erreicht werden:
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)); } }
Mit dieser Klasse können Sie Zeichenfolgen auf benutzerdefinierte Weise kodieren und dekodieren, um sicherzustellen, dass Sonderzeichen wie Schrägstriche korrekt verarbeitet werden und gleichzeitig die Lesbarkeit gewahrt bleibt Benutzerfreundlichkeit.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit URL-codierten Schrägstrichen beim ASP.NET-Routing um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!