在ASP.NET Core项目的通常位置,我有一组剃须刀页面。
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...
他们使用通常的共享布局文件为每个页面提供页眉和页脚内容...
/Pages/Shared/_Layout.cshtml
在_Layout.cshtml中,我在页面的页眉和页脚部分有定位标记,可以返回到索引页面,就像这样...
<a asp-page="\About">About</a>
...将生成实际的href为“ http://localhost/About”。这是正确的,并且工作正常。从那以后,我在一个区域内添加了更多剃刀页面,像这样...
/Areas/Account/Pages/Settings/UserSettings.cshtml
我希望“帐户”区域页面的页眉和页脚显示与主页相同,因此我已设置了视图开始文件...
/Areas/Account/_ViewStart.cshtml
...使用现有的布局,像这样...
@{
Layout = "/Pages/Shared/_Layout.cshtml";
}
...而且可以肯定的是,我的UserSettings页面现在可以按预期呈现该页面的页眉和页脚。带有适当的图像和文字。
除了一个问题。锚标记无法为“帐户”区域内的任何剃刀页面生成正确的href。而不是生成...
href="http://localhost/About"
...正在生成...
href="http://localhost/Account/Settings/UserSettings"
我相信它会为UserSettings页面生成默认的href。
有什么想法吗?
答案 0 :(得分:3)
我发现您需要更改
<a asp-page="\About">About</a>
到
<a asp-page="/About">About</a>
\
是
转义符,/
是分隔符。如果使用asp-page="\About"
,将无法正确定向区域。