2012-07-04 34 views
5

在我的ASP.NET MVC应用4的RouteConfig文件,我已经注册了以下默认路由:现在删除ASP.NET MVC 4路尾部斜杠应用程序根目录

routes.MapRoute("Default", "{controller}/{action}/{id}", 
    new { controller = "home", action = "index", id = UrlParameter.Optional }); 

,在我的剃须刀的意见,我想要为我的应用程序根目录生成一个URL:

<a href="@Url.Action("index", "home")">Home</a> 

生成的URL包含尾部斜线;点击链接打开页面localhost/IISA应用名称 /。但是,我希望URL不要包含结尾斜杠,以便URL为localhost/IISA应用名称。为其他操作(如/帐户/登录)生成路由不会创建带有尾部斜线的网址 - 它只是关于链接到我的应用程序根目录的路线。

有什么办法可以防止ASP.NET MVC路由追踪斜杠到上述路由?

(我知道我可以从URL包括斜线到一个没有它重定向,但我宁愿路由产生在首位的正确路径URL)。

+1

我不能重复你的问题,我用'默认route'和它关系到URL,而不'/' –

+1

只是信息,什么是用斜线这个问题? –

+0

@alexanderb 1)尽管网址略有不同,但两个链接最终都显示相同的网页。不好... 2)它很丑陋;-)。 –

回答

0

有任何防止ASP.NET MVC路由将 尾部斜杠追加到上述路由的方法?

当相对路径为空时,应该传递一个尾部斜线。如果你以某种方式生成链接仍然浏览器在最后附加一个“/”(你可以很容易地在萤火虫中验证,只需在浏览器地址栏输入http://stackoverflow.com并检查请求标签,你可以看到尾随的“/” )。

这是因为每HTTP/1.1如,

绝对路径不能emtpy;如果原始的 URI中不存在,则mut将作为“/”(服务器根目录)给出。

http://www.faqs.org/rfcs/rfc2616.html#ixzz0kGcaRbqU(5.1.2节)

相关问题