Warum ignoriert ASP.NET MVC meine Slash?
-
06-07-2019 - |
Frage
Betrachten Sie die folgende Route:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
Mit Url.Action("Service", "CustomerService")
erzeugt eine URL von /service
statt der erwarteten /service/
Gibt es eine Möglichkeit, dies zu erhalten zu arbeiten, oder muss ich mein eigenes Routing zurückgreifen müssen, um die Umsetzung von RouteBase
ableiten?
Lösung
Legenden - es gibt keine sofortige Lösung für das Problem. Sie können über Jason Young Blog-Post über das Thema, die sehr informativ ist. Scott Hanselmann veröffentlicht eine Antwort es hier, im Grunde besagt, dass er es nicht glauben eine große Sache war, und wenn es ist, können Sie das neue IIS7 Rewrite-Modul, es zu lösen nutzen.
Letztlich aber, möchten Sie vielleicht zu einer Lösung suchen, die auf eine ähnliche Frage auf Stackoverflow von Murad gepostet: nachgestellten Schrägstrich auf einer ASP.NET MVC-Route
Andere Tipps
In Ihrer Seite Load-Ereignis hinzu:
Dim rawUrl As String = HttpContext.Current.ApplicationInstance.Request.RawUrl
If Not rawUrl.EndsWith("/") Then
HttpContext.Current.ApplicationInstance.Response.RedirectPermanent(String.Format("~{0}/", rawUrl))
End If