Mar*_*ulz 5 asp.net asp.net-mvc routing asp.net-mvc-routing
在我的ASP.NET MVC 4应用程序的RouteConfig文件中,我已注册以下默认路由:
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "home", action = "index", id = UrlParameter.Optional });
Run Code Online (Sandbox Code Playgroud)
现在,在我的Razor视图中,我想生成一个指向我的应用程序根目录的URL:
<a href="@Url.Action("index", "home")">Home</a>
Run Code Online (Sandbox Code Playgroud)
生成的URL包括尾部斜杠; 单击该链接将打开localhost/IISApplicationName/页面.但是,我希望URL不包含尾部斜杠,以便URL是localhost/IISApplicationName.为其他操作生成路由(例如/ Account/Login)不会创建带有斜杠的URL - 它只是链接到应用程序根目录的路径.
有没有办法阻止ASP.NET MVC路由将尾部斜杠附加到上面的路由?
(我知道我可以从包含斜杠的URL重定向到没有斜杠的URL,但我宁愿让路由生成正确的路由URL.)
有什么方法可以阻止 ASP.NET MVC 路由将尾部斜杠附加到上述路由吗?
当相对路径为空时,您应该传递尾部斜杠。如果你以某种方式生成带有 href 的链接,localhost/IISApplicationName浏览器仍然会在末尾附加一个“/”(你可以在 firebug 中轻松验证这一点,只需在浏览器地址栏中输入http://stackoverflow.com并检查请求选项卡,你就可以看到尾随“/”)。
这是因为根据 HTTP/1.1,
绝对路径不能为空;如果原始 URI 中不存在,则必须将其指定为“/”(服务器根)。
http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU(第 5.1.2 节)
| 归档时间: |
|
| 查看次数: |
4957 次 |
| 最近记录: |