【发布时间】:2018-04-26 19:15:14
【问题描述】:
我的问题是,当我不在“管理”区域时,链接显示为“/blog”,但是当我在“管理”区域时,链接变为“/管理员/博客”。
我有一个“管理”区域,并且我在“管理”区域视图部分的 viewstart 文件中指定了一个布局页面。标记如下:
Layout = "~/Views/Shared/_Layout.cshtml";
我的链接的标记看起来像这样(这个链接在我的 _Layout.cshtml 视图中):
<a asp-controller="Blog" asp-action="Index" class="nav-link"> Blog </a>
我的路线如下所示:
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
app.UseMvc(routes =>
{
routes.MapRoute(
name: "areas",
template: "{area:exists}/{controller=Home}/{action=Index}/{id?}"
);
});
我的“管理”区域中的控制器如下所示:
[Authorize(Roles = "Admin")]
[Area("Admin")]
public class ProductsController : Controller
我已经尝试添加 asp-area="" 所以我的 a 标签看起来像:
<a asp-area="" asp-controller="Blog" asp-action="Index" class="nav-link"> Blog </a>
但是当通过开发者工具查看它时,这只会让 href 为空。
所以我的问题是如何从 url 中删除区域名称?
我觉得这很容易,但我无法弄清楚。我查看了 this 线程,但它不在 .net 核心中,因此该解决方案不起作用。
【问题讨论】:
标签: c# asp.net-core