¿Por qué ASP.NET MVC ignora mi barra diagonal final?
-
06-07-2019 - |
Pregunta
Considere la siguiente ruta:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
El uso de Url.Action (" Service " ;, " CustomerService ")
produce una url de / service
en lugar del esperado / service /
¿Hay alguna manera de hacer que esto funcione o tengo que recurrir a la implementación de mi propio enrutamiento derivado de RouteBase
?
Solución
Legenden: no hay una solución inmediata al problema. Es posible que haya encontrado publicación de blog de Jason Young sobre el tema, que es muy informativo. Scott Hanselmann publicó una respuesta aquí, básicamente afirmando que no lo pensó. fue un gran problema, y ??si lo es, puede aprovechar el nuevo módulo de reescritura IIS7 para resolverlo.
Sin embargo, es posible que desee ver una solución que fue publicada por murad en una pregunta similar en StackOverflow: Barra inclinada final en una ruta ASP.NET MVC
Otros consejos
En su evento de carga de página, agregue:
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