如何从区域中的一个页面导航到另外一个 Razor 页面?

Zhi Lv - MSFT 32,036 信誉分 Microsoft 供应商
2024-01-30T08:02:36.91+00:00

你好,

在 Sale 区域 Index.chtml 页面(位于\Areas\Customer\Views\Sale 文件夹)中有一个<a>标记链接:

<a asp-page="/TryGetMoney" class="btn btn-success">@language.Getkey("get_money")</a>

这个 Index.chtml 在浏览器中访问URL 为:https://localhost:44382/Customer/Sale
我想用这个<a>标记访问一个名为 TryGetMoney 的 Razor 页面:
BBB_BBB

但是当我点击<a>链接打开Razor 页面时,不知道什么原因请求路径变为:https://localhost:44382/Customer/Sale?page=%2FTryGetMoney

访问不到TryGetMoney Razor 页面。

另外,我也尝试修改 asp-page 中的页面路径,没有任何帮助,还是访问不到 TryGetMoney Razor 页面。

为什么会出现这个问题呢?该如何导航到 Razor 页面呢?

Note:此问题总结整理于:How do I launch RazorPage from \Areas\Customer\Views\Sale?

ASP.NET Core
ASP.NET Core
.NET Framework 中一套用于生成 Web 应用程序和 XML Web 服务的技术。
25 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. XuDong Peng-MSFT 10,181 信誉分 Microsoft 供应商
    2024-01-30T09:44:17.1+00:00

    你好,

    从你的截图中可以看出,TryGetMoney Razor页面位于 Identity 区域中,因此访问区域中的页面时,需要指定区域。

    由于您使用的是 ASP.NET Core 中的定位点标记帮助程序, 可以使用 asp-area 属性设置相应路由的区域名称。代码如下:

    <a asp-page="/TryGetMoney" asp-area="Identity" class="btn btn-success">@language.Getkey("get_money")</a>
    

    另外,要使用 ASP.NET Core 内置标记帮助程序, 需要使用 @addTagHelper 指令在 _ViewImport.cshtml 文件(位于Areas\Customer\Views)中或者在当前页面(Index.cshtml)中添加加标记帮助程序。

    @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
    

    如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。
    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。
    最好的问候

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助