加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

删除ASP.NET MVC 4路由到应用程序根目录中的尾随斜杠

发布时间:2020-12-16 07:45:30 所属栏目:asp.Net 来源:网络整理
导读:在我的ASP.NET MVC 4应用程序的RouteConfig文件中,我已注册以下默认路由: routes.MapRoute("Default","{controller}/{action}/{id}",new { controller = "home",action = "index",id = UrlParameter.Optional }); 现在,在我的Razor视图中,我想生成一个指向
在我的ASP.NET MVC 4应用程序的RouteConfig文件中,我已注册以下默认路由:

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

现在,在我的Razor视图中,我想生成一个指向我的应用程序根目录的URL:

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

生成的URL包括尾部斜杠;单击该链接将打开localhost / IISApplicationName /页面.但是,我希望URL不包含尾部斜杠,以便URL是localhost / IISApplicationName.为其他操作生成路由(例如/ Account / Login)不会创建带有斜杠的URL – 它只是链接到应用程序根目录的路径.

有没有办法阻止ASP.NET MVC路由将尾部斜杠附加到上面的路由?

(我知道我可以从包含斜杠的URL重定向到没有斜杠的URL,但我宁愿让路由生成正确的路由URL.)

解决方法

Is there any way to prevent ASP.NET MVC routing from appending the
trailing slash to the above route?

当相对路径为空时,您应该传递一个尾部斜杠.如果你以某种方式生成与href localhost / IISApplicationName的链接,浏览器会在末尾附加一个“/”(您可以在firebug中轻松验证这一点,只需在浏览器地址栏中输入https://stackoverflow.com并检查请求选项卡,您就可以看到尾随“/ “).

这是因为根据HTTP / 1.1,

the absolute path cannot be emtpy; if none is present in the original
URI,it mut be given as “/” (the server root).

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读