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

.NET Core 3.0:Razor视图修改后无法自动重新编译

解决ASP.NET Core 3.0 Preview 2 Razor Pages视图修改后不自动刷新的问题

我之前在使用ASP.NET Core 3.0 Preview版本时也碰到过完全一样的问题——默认模板里的Razor视图修改后没法自动重新编译,必须重启项目才能生效。其实这是因为3.0版本开始,Razor运行时编译不再默认包含在框架里了,得手动配置几步,给你详细说下:

1. 安装运行时编译的NuGet包

首先要安装对应版本的Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation包,因为你用的是3.0.0 Preview 2,所以包版本要选3.0.0-preview2.19153.1。

  • 可以通过NuGet包管理器搜索安装,或者在Package Manager Console里执行命令:
    Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 3.0.0-preview2.19153.1
    

2. 在Startup.cs里启用运行时编译

打开Startup.cs,找到ConfigureServices方法,修改RazorPages的注册代码,添加运行时编译支持:

public void ConfigureServices(IServiceCollection services)
{
    // 先获取RazorPages的构建器
    var razorPagesBuilder = services.AddRazorPages();

    // 只在开发环境启用,避免影响生产环境
#if DEBUG
    razorPagesBuilder.AddRazorRuntimeCompilation();
#endif
}

3. 检查项目文件的配置(可选但保险)

打开你的项目文件(.csproj),确保在<PropertyGroup>节点里包含以下配置,保证编译上下文被保留:

<PropertyGroup>
  <!-- 其他配置... -->
  <PreserveCompilationContext>true</PreserveCompilationContext>
  <RazorCompileOnBuild>false</RazorCompileOnBuild>
  <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
</PropertyGroup>

RazorCompileOnBuild设为false是避免构建时就编译视图,让运行时编译生效;MvcRazorCompileOnPublish设为true则保证发布时还是会预编译视图,不影响生产性能。

4. 确认开发环境设置

检查你的launchSettings.json文件,确保ASPNETCORE_ENVIRONMENT的值是Development——运行时编译只会在开发环境下启用,生产环境默认会禁用这个功能:

"profiles": {
  "IIS Express": {
    "commandName": "IISExpress",
    "launchBrowser": true,
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  },
  // 其他配置...
}

做完这些步骤后,重启一次项目,之后再修改Razor视图,刷新页面就能看到变更生效了,不用再重启解决方案啦。

内容的提问来源于stack exchange,提问作者tarun713

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 09:29:42