【发布时间】:2016-05-22 13:10:23
【问题描述】:
我的 startup.cs 配置方法中有一个默认路由:
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
我导航到具有以下 url 的页面:
http://localhost:59977/Home/Index/somedata
在上面的页面上,我创建了一个锚标记助手,如下所示:
<a asp-route="default">default route</a>
当我在网络浏览器上查看页面并查看它显示的锚元素时
<a href="/Home/Index/somedata">default route</a>
我的问题是这样的。为什么它在链接中添加了 id 部分(somedata)?我按名称调用路由,并假设它会使用MapRoute 中设置的默认选项,这意味着 id 是可选的,我没有指定。
【问题讨论】:
-
这是您网址的一部分!
-
但这是对服务器的新请求。如果我将 asp-route-id="moredata" 添加到上面的标签助手中,它会将 moredata 添加到 url 的末尾(而不是 somedata,这是我所期望的)
-
但是你导航到
Home/Index/somedata而不是Home/Index/default,默认路由是Home/Index/{id?},somedata是你的id。在您的代码中,您写的是asp-route="default"而不是asp-route-id="default"
标签: asp.net-core asp.net-core-mvc