【发布时间】:2018-05-16 16:22:50
【问题描述】:
我正在尝试在我的 ASP.Net MVC Core 2 应用程序中为管理员实现Area。
我对该区域的路线配置如下:
// Default route
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
// Admin area route
app.UseMvc(routes =>
{
routes.MapRoute(
name: "admin",
template: "{area=Admin}/{controller=Home}/{action=Index}/{id?}");
});
这一切都很好。
此管理员area 使用与主网站相同的Layout,尽管_ViewStart.cshtml 位于Areas/Admin/Views 目录中,但这仍然可以正常工作。
我遇到的问题是导航菜单组件位于主站点布局文件中,并且所有锚点中的 href 链接在管理区域内指向错误的 URL。
假设我有以下链接:
<a asp-controller="Account" asp-action="Index">My Account</a>
<a asp-controller="Shopping" asp-action="Basket">Shopping Basket</a>
<a asp-controller="Admin" asp-action="Users">Manage Users</a>
在管理区域内时,链接现在与该区域相关,因此看起来如下所示:
http://localhost/Admin/Account/Index
http://localhost/Admin/Shopping/Basket
http://localhost/Admin/Admin/Users
有没有什么好的方法可以让所有这些链接都相对于站点根目录?
【问题讨论】:
标签: c# asp.net-mvc asp.net-core-2.0