ASP.NET访问子文件夹内index.cshtml报404错误如何解决?
解决方案
- 第一步:确认服务注册与中间件配置
打开你项目根目录的Program.cs文件,确保存在以下两行配置(.NET 6及以上版本),空白创建的项目默认不会添加这两行:// 服务注册部分,需写在var app = builder.Build();之前 builder.Services.AddRazorPages(); // 中间件配置部分,需写在app.Run();之前 app.MapRazorPages(); - 第二步:调整文件存放路径
非MVC的ASP.NET Core Razor Pages模式默认会从项目根目录的Pages文件夹下读取可访问的页面文件,直接放在项目根目录的admin文件夹不会被识别,请按以下路径调整:- 项目根目录下新建
Pages文件夹(如果已经存在则跳过) - 把你创建的
admin文件夹整体移动到Pages文件夹内,最终文件路径应为Pages/admin/index.cshtml
- 项目根目录下新建
- 第三步:检查页面指令
打开index.cshtml文件,确认文件第一行是@page指令,这个指令是标识该文件为可路由访问的Razor页面的必要配置,缺失的话直接补上即可。
完成以上三步后重启项目,通过localhost:5000/admin或者localhost:5000/admin/index即可正常访问页面,不需要加.cshtml后缀。
如果你只是需要放置静态页面不需要用到Razor动态语法,可以直接把文件后缀改为
.html,将admin文件夹放到项目根目录的wwwroot文件夹下,同时在Program.cs中添加app.UseStaticFiles();中间件,即可直接通过路径访问静态文件。
内容的提问来源于stack exchange,提问作者Yash Kejriwal
相关产品推荐
相关产品推荐

