我在ASP公司工作。NET Core 2.0 MVC应用程序,我正在尝试使用路由信息构建URL。只要我坚持使用区域、控制器和动作,一切都很好。只要我尝试使用Id,路径就会返回错误
当我包括除id之外的所有内容时,我得到了我所期望的
<a asp-area="Admin" asp-controller="Users" asp-action="Detail">User detail</a>
或者从UsersController内部
Url.Action("Detail")
生产
http://localhost:55556/Admin/Users/Detail
当我包括id时
<a asp-area="Admin" asp-controller="Users" asp-action="Detail" asp-route-id="1">User detail</a>
或
Url.Action("Detail", new { id = 1 })
我只得到
http://localhost:55556/1
这就是我的路线
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}"
);
有人能看出我错在哪里吗?
使现代化
这似乎与该地区有关。当我离开这个区域时,它产生了我所期望的
Url.Action("Detail", "Users", new { id = 1 })
生产
/Users/Detail/1
尽管这实际上并不存在。但是当我添加面积时
Url.Action("Detail", "Users", new { id = 1, area = "Admin" })
我明白了
/1
其他人在区域布线方面有问题吗?