我已经找了一段时间了,解决方案看起来应该可以工作,看来我做错了。
我创建了一个用于管理 CMS 端的区域,称为“管理”,因此如果您访问:
/管理/Vinyard
它将为您提供使用 CRUD 脚手架构建的 VinyardController 管理的 vinyards 列表。
在“前端”我有一个浏览控制器和另一个 VinyardController 用于查看 vinyard 的详细信息。
所以有人去
/浏览/葡萄园
它给了他们一个 Vinyards 列表,他们点击一个(这是问题所在)我想要它去
/Vinyard/NameOfVinyard
我的路线是:
routes.MapRoute(
"Vinyard",
"Vinyard/{Name}",
new { controller = "VinyardController", action = "Details", area="root"}
);
高于默认路由。Details 是显示 Vinyard 详细信息的方法。
我使用的 HTML.actionlink 是:
@Html.ActionLink(item.Name, "Details", "vinyard" ,new { name = item.VinyardId, area="root" })
出于某种原因,返回的 a 标签是:/Browse/Details?Length=7
最重要的是,当我尝试浏览到 /vinyard/1 时,它给了我一个 404。
谢谢你的帮助!
更新:如果我浏览到 /vinyard/details/1 它可以正常工作,除了我希望它避开 /details/ 部分。