【发布时间】:2018-06-24 15:48:30
【问题描述】:
我有一个 .NET Core 2.0 MVC 应用程序,其结构中包含一个名为 admin 的区域。
- 区域
- 管理员
- 查看次数
- 首页
- Index.cshtml
- 首页
- 控制器
- HomeController.cs
- 查看次数
- 管理员
- 控制器
- HomeController.cs
- ManageController.cs
- 查看次数
- 首页
- Index.cshtml
- 管理
- Index.cshtml
- 首页
我想在 _Layout.cshtml 中添加路由,例如 /controllers/manage/index,这些路由在不在某个区域时和在管理员等区域时都可以使用。使用 HtmlHelper 语法或 TagHelper 语法如何创建?
期望的输出:
www.website.com/manage
我试过了
<a asp-area="" asp-controller="Manage" asp-action="Index" title="Manage">Manage</a>
当不在一个区域时有效,但在管理区域时会产生一个链接:
www.website.com/admin
我在 Startup Configure(IapplicationBuilder app) 中注册了以下路由
// Route for areas
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
// Default route
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
【问题讨论】:
-
根据the documentation,你说得对。最好的猜测是您还没有注册区域路线。
-
你期望它产生什么?
-
@StephenMuecke 更新了问题以包含所需的输出
标签: asp.net-mvc asp.net-core asp.net-mvc-routing