【问题标题】:Navigate to a razor page that not locate in `Pages` folder导航到不在“页面”文件夹中的剃须刀页面
【发布时间】:2021-12-18 14:25:24
【问题描述】:

我在名为AdminPages 的文件夹中创建了一个简单页面:

并且该页面中@page的定义是@page "/AdminPages/Index"

我在Pages 文件夹中有一个页面,我在其中添加了一个锚标记以进行导航:

<a asp-page="/index" asp-area="AdminPages">Just Go Admin Pages To Test Routing</a>

但是当我运行项目锚标签时,href 转换为:Home/Index?area=AdminPages

当我输入地址 https://localhost/adminpages/index 我得到 404 错误!!!

如何重定向到页面:/AdminPages/Index

谢谢


编辑 1)

我将此代码添加到ConfigureServices,但没有任何改变:

services.AddRazorPages().AddRazorPagesOptions(options =>
{
    options.Conventions.AddAreaPageRoute("AdminPages", "/Index", "/AdminPages/Index");
});

【问题讨论】:

  • 你可以尝试直接使用hrefhref="/AdminPages/Index"
  • @Yiyiyou:没用

标签: c# asp.net-core routes razor-pages asp.net-core-5.0


【解决方案1】:

您不能在 Pages 文件夹*之外拥有页面,除非它们位于区域中。要创建一个区域,您需要创建一个名为 Areas 的文件夹,在其中创建一个名为 AdminPages 的文件夹,并在其中创建一个名为 Pages 的文件夹,然后将您的索引页面在那里。

https://www.learnrazorpages.com/advanced/areas

但是 Razor Pages 中的区域很多都是为了一点收益而搞砸的。您只需将 AdminPages 文件夹移动到现有的 Pages 文件夹中即可获得相同的效果,如果您希望用户能够访问所有 Razor 页面,则该文件夹应该位于该文件夹中导航到它们。

*您可以配置另一个文件夹作为 Pages 文件夹,但所有可导航的 Razor 页面都必须放在其中。

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2021-04-09
    • 2020-02-19
    • 1970-01-01
    • 2021-05-31
    • 2018-12-03
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多