关于 c#:ASP.NET Core Razor 页面锚标记在区域内不起作用

ASP.NET Core Razor Page anchor tag not working inside an Area

我在 ASP.NET Core 项目的常用位置有一组剃须刀页面...

1
2
3
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...

他们使用通常的共享布局文件为每个页面提供页眉和页脚内容...

1
/Pages/Shared/_Layout.cshtml

在 _Layout.cshtml 中,我在页面的页眉和页脚部分有锚标记,用于返回索引页面,如下所示...

1
About

...生成一个实际的href 'http://localhost/About'。这是正确的并且工作得很好。从那以后,我在一个区域内添加了更多剃须刀页面,就像这样......

1
/Areas/Account/Pages/Settings/UserSettings.cshtml

我希望帐户区域页面的页眉和页脚显示与我的主页相同,因此我设置了视图开始文件...

1
/Areas/Account/_ViewStart.cshtml

...使用已经存在的布局,像这样...

1
2
3
@{
    Layout ="/Pages/Shared/_Layout.cshtml";
}

...果然,我的 UserSettings 页面现在按预期呈现页面的页眉和页脚。带有适当的图像和文字。

除了一个问题。锚标记不会为帐户区域内的任何剃须刀页面生成正确的 href。而不是生成...

1
href="http://localhost/About"

...它正在生成...

1
href="http://localhost/Account/Settings/UserSettings"

我相信它会为 UserSettings 页面生成一个默认的 href。

有什么想法吗?


我发现你需要改变

1
About

1
About

\\
转义字符和 / 是分隔符。如果使用 asp-page="\\About",您将无法在区域中正确定向。