我发现路由有些奇怪...
我正在 Visual Studio Web Express 2012 中测试 MVC3 应用程序
- 我创建了一个新的 MVC3 应用程序来隔离问题
我在默认路由之前添加了以下路由:
routes.MapRoute( "default_localization", "{language}/{country}/{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
然后没有任何其他更改(创建项目后没有任何区域,只有初始文件),我运行了应用程序,乍一看一切正常。由于它是一个新应用程序,因此页面顶部有两个链接:
- 家
- 关于
操作链接如下所示:
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
然后这就是正在发生的事情:
当浏览器 URL 为:
http://localhost:54870/
- 主页链接是:
http://localhost:54870/
- 关于链接是:
http://localhost:54870/Home/About
HTML
<li><a href="/">Home</a></li> <li><a href="/Home/About">About</a></li>
哪个没问题
- 主页链接是:
但点击 About 链接后,浏览器 URL 为:
http://localhost:54870/Home/About
- 主页链接变为:
http://localhost:54870/Home/About
- 关于链接变为:
http://localhost:54870/Home/About/Home/About
即使链接混乱,他们仍然会执行正确的操作。
HTML
<li><a href="/Home/About">Home</a></li> <li><a href="/Home/About/Home/About">About</a></li>
- 主页链接变为:
如果我删除我的自定义路由,一切都会按预期工作
为什么会这样?
我该如何解决?