带ASP.NET Core 2.2的Razor页面中的嵌套/子区域

时间:2018-12-08 14:08:30

标签: c# asp.net-core asp.net-webpages

在使嵌套(子)区域与Razor Pages配合使用时遇到麻烦。我想要一个像这样的路由结构:

/Index
/Admin
/Admin/Orders
/Admin/Inventory

当前我的文件结构如下:

/Pages
  /Index.cshtml
/Areas
  /Admin
    /Inventory
      /Pages
        /Index
      /Models
    /Orders
      /Pages
        /Index
      /Models
  /Product
    /Models
    /Pages

我的Admin.Index页面看起来像:

@page
@model ECommerceWeb.Areas.Admin.Pages.AdminModel
@{
    ViewData["Title"] = "Admin";
}

<h2>Admin</h2>

<ul>
    <li><a asp-page="Index" asp-area="Inventory">Inventory</a></li>
    <li><a asp-page="/Orders/Orders" asp-area="Admin">Orders</a></li>
</ul>

<form method="post">
    <button type="submit" name="action" value="logoutButton">Logout</button>
</form>

从以上两个<li>中可以看到,我已经尝试了各种方法。

1 个答案:

答案 0 :(得分:0)

我通过重新构造应用程序/文件夹结构来解决此问题:

/Pages
  /Index.cshtml
/Areas
  /Admin
    /Models
      /Inventory
      /Orders
    /Pages
      /Inventory
        /Index.cshtml
      /Orders
        /Index.cshtml
  /Product
    /Models
    /Pages
      /Index.cshtml