You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6.0无调试启动后修改cshtml不生效问题求助

解决ASP.NET Core 6.0 Razor视图修改后刷新不生效的问题

以下是几个排查和解决方向:

  • 确认开发环境配置
    Razor运行时编译默认仅在Development环境下启用。检查你的项目:

    • 打开Properties/launchSettings.json,确保environmentVariables里的ASPNETCORE_ENVIRONMENT值为Development
    • 如果需要强制在所有环境启用(不推荐生产环境),可以修改服务注册代码:
      builder.Services.AddControllersWithViews()
          .AddRazorRuntimeCompilation(options => 
          {
              options.FileProviders.Add(new PhysicalFileProvider(
                  Path.Combine(Directory.GetCurrentDirectory(), "Views")));
          });
      
  • 检查热重载配置
    确保launchSettings里开启了热重载:
    打开Properties/launchSettings.json,找到对应的启动配置(比如IISExpress或项目名称),添加或确认"hotReload": true配置项,同时检查"hotReloadProfile": "aspnetcore"是否存在。

  • 清理项目缓存

    • 右键项目,选择「清理」,然后执行「生成」
    • 手动删除项目根目录下的bin和obj文件夹,再重新生成并启动项目
  • 检查视图文件属性
    右键不生效的cshtml文件,选择「属性」:

    • 确保「复制到输出目录」设置为「如果较新则复制」
    • 确保「生成操作」设置为「内容」,而非「嵌入式资源」
  • 验证Program.cs配置顺序
    确认AddRazorRuntimeCompilation()是在builder.Build()之前添加的,正确的顺序应该是:

    var builder = WebApplication.CreateBuilder(args);
    
    // 先配置服务
    builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
    
    var app = builder.Build();
    
    // 再配置中间件等
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    

内容的提问来源于stack exchange,提问作者Lê Trần Phú

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 22:41:03