Perché ASP.NET MVC ignora la mia barra finale?
-
06-07-2019 - |
Domanda
Considera il seguente percorso:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
L'utilizzo di Url.Action (" Service " ;, " CustomerService ")
produce un URL di / service
invece del / service /
Esiste un modo per far funzionare tutto questo o devo ricorrere all'implementazione del mio routing derivante da RouteBase
?
Soluzione
Legenden: non esiste una soluzione immediata al problema. Potresti aver incontrato Post sul blog di Jason Young sul problema, che è molto informativo. Scott Hanselmann ha pubblicato una risposta , affermando sostanzialmente di non pensarlo è stato un grosso problema e, se lo è, puoi sfruttare il nuovo modulo di riscrittura di IIS7 per risolverlo.
Alla fine, però, potresti voler esaminare una soluzione che è stata pubblicata da Murad su una domanda simile su StackOverflow: Barra rovesciata su una rotta MVC ASP.NET
Altri suggerimenti
Nell'evento di caricamento della pagina aggiungere:
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