考虑以下路线:
routes.MapRoute(
"Service", // Route name
"service/", // URL with parameters
new {controller = "CustomerService", action = "Index"} // Parameter defaults
);
使用Url.Action("Service", "CustomerService")
生成的网址为/service
而不是预期的/service/
有没有办法让这个工作,或者我是否必须求助于实现我自己的RouteBase
派生的路由?
答案 0 :(得分:4)
Legenden - 没有立即解决问题的办法。您可能已经遇到过关于此问题的Jason Young's blog post,这非常有用。 Scott Hanselmann posted a reply在这里,基本上说他不认为这是一个大问题,如果是,你可以利用新的IIS7重写模块来解决它。
最终,您可能希望查看murad在StackOverflow上发布的类似问题的解决方案:Trailing slash on an ASP.NET MVC route
答案 1 :(得分:-5)
在您的页面加载事件中添加:
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