Por que é ASP.NET MVC ignorando a minha barra invertida?
-
06-07-2019 - |
Pergunta
Considere o seguinte rota:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
Usando Url.Action("Service", "CustomerService")
produz uma url de /service
vez do /service/
esperado
Existe alguma maneira de chegar a este trabalho, ou eu tenho que recorrer a implementar o meu próprio encaminhamento decorrente RouteBase
?
Solução
Legenden - não há solução imediata para o problema. Você pode ter executado através de post do Jason Young sobre a questão, que é muito informativo. Scott Hanselmann postou uma resposta para isso aqui, basicamente, afirmando que ele não achava que foi um grande negócio, e se for, você pode aproveitar o novo módulo IIS7 reescrita para resolvê-lo.
Em última análise, porém, você pode querer olhar para uma solução que foi publicado por Murad sobre uma questão semelhante em StackOverflow: barra final em uma rota ASP.NET MVC
Outras dicas
Na página do evento carga add:
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