ASP.NET Core Razor Pages中如何导航至其他文件夹下的页面?
解决ASP.NET Core Razor Pages导航路径问题
在Razor Pages中使用asp-page标签助手时,不需要包含/Pages前缀——框架默认将Pages文件夹作为页面路由的根目录,你只需要写相对于Pages的路径即可。
正确的导航代码
把你的asp-page属性值修改为/Reader/AddReader,修正后的代码如下:
<div> <a class='btn btn-primary btn-lg' asp-page="/Reader/AddReader" style="background-color:yellow;color:black;text-align:left;margin-left:200px;width:400px;text-align:center">Стани читател</a> </div>
为什么之前的写法无效?
- Razor Pages的路由系统会自动忽略
Pages文件夹前缀,你写/Pages/Reader/AddReader会被框架解析为寻找Pages/Pages/Reader/AddReader.cshtml,显然这个路径不存在,所以导航失效。 - 如果直接用原生
href属性,正确路径应该是href="/Reader/AddReader",同样不需要/Pages。
额外排查点
- 确认
/Pages/Reader/AddReader.cshtml文件确实存在,且文件名拼写正确(注意大小写,Windows系统不区分,但部署到Linux环境会区分)。 - 检查页面所在的
_ViewImports.cshtml文件中是否启用了标签助手,确保包含以下代码:
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
如果缺少这行,asp-page标签助手不会生效,浏览器会直接把它当作普通属性处理。
内容的提问来源于stack exchange,提问作者Атанас
相关产品推荐
相关产品推荐

