如何在 Rider 中启用视图热重载?

How to enable the view hot-reloading in Rider?

我正在使用 Rider 编写一个 MVC 应用程序,一个行为困扰着我:当我修改视图时,我必须重建解决方案并重新启动它才能看到更改。从浏览器重新加载站点时是否可以直接看到修改后的视图?

顺便说一句,IDE(或 dotnet?)不会将视图更改视为触发重建的更改。我必须手动单击 "Rebuild selected project",然后才能启动修改后的应用程序版本。这是为什么?

这不是 Rider 的问题,它是 ASP.NET MVC Core 的基本工作方式。您需要启用 Razor runtime compilation。来自文档(强调我的):

Razor files are compiled at both build and publish time using the Razor SDK. Runtime compilation may be optionally enabled by configuring your application.

请注意,默认情况下 运行 时间不包含在此列表中。要更改此行为:

  1. 添加 Nuget 包 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.

  2. 更改您的 Startup.ConfigureServices 代码以包含 运行 时间编译:

    services
        .AddControllersWithViews()
        .AddRazorRuntimeCompilation();