Razor Pages保存cshtml后能否无需重启刷新?配置咨询
Razor Pages 实时编译不生效的解决办法(ASP.NET Core 7)
Razor Pages 完全支持实时编译刷新,你的问题大概率是缺少针对 Razor Pages 的运行时编译配置,以下是具体排查和解决步骤:
1. 完善 Program.cs 中的服务配置
你可能只给 MVC 视图配置了运行时编译,但没给 Razor Pages 加上。在 .NET 7 的顶级语句 Program.cs 中,需要确保同时为 Razor Pages 启用运行时编译:
var builder = WebApplication.CreateBuilder(args); // 同时为 MVC 和 Razor Pages 添加运行时编译支持 builder.Services.AddControllersWithViews() .AddRazorRuntimeCompilation(); builder.Services.AddRazorPages() .AddRazorRuntimeCompilation(); // 后续其他配置... var app = builder.Build(); app.UseRouting(); app.MapControllers(); app.MapRazorPages(); // 确保注册了 Razor Pages 的路由 app.Run();
如果你的项目同时包含 MVC 和 Razor Pages,也可以用更简洁的方式(AddMvc 包含了两者的服务):
builder.Services.AddMvc() .AddRazorRuntimeCompilation();
2. 确认开发环境配置
运行时编译默认仅在 Development 环境下启用,所以要确保你的调试环境是开发环境:
- 检查
launchSettings.json文件,确认ASPNETCORE_ENVIRONMENT的值为Development:"profiles": { "YourProjectName": { "commandName": "Project", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } - 如果需要在非开发环境启用实时编译,可以手动配置允许:
builder.Services.AddRazorPages() .AddRazorRuntimeCompilation(options => { options.AllowCompilationInNonDevelopmentEnvironment = true; });
3. 检查 Razor Pages 文件属性
确保你的 .cshtml 文件的属性设置正确:
- 在 Visual Studio 中右键文件 → 属性,确认 生成操作 为
内容,复制到输出目录 为如果较新则复制(这是默认设置,一般无需修改,但如果被误改会影响检测)。
完成以上配置后,修改 Razor Pages 的 .cshtml 文件,保存后刷新浏览器就能看到实时更新,无需重启调试器。
内容的提问来源于stack exchange,提问作者Kolichikov
相关产品推荐
相关产品推荐

