小编典典

.NET Core MVC 页面在更改后不刷新

all

我正在最新版本 2.2 上构建 .NET Core MVC。我对 CSHTML
文件进行更改并刷新页面时遇到问题,我的更改未反映在浏览器中。我必须重新启动项目才能看到我的更改。这种情况已经发生了一段时间,所以我不确定是什么变化导致了这个问题。

我试过使用 chrome 的“空缓存和硬重载”以及其他浏览器无济于事。这发生在使用 Visual Studio for Mac 和 VS Code 的
Windows 和 Mac 上

在默认的 .Net Core
项目中,它工作正常,所以它一定是我的项目中的某些东西在此过程中发生了变化。我想知道我需要从哪里开始调试这个问题?Startup.cs我已经尝试将我的几乎所有内容都注释掉Program.cs,但没有解决方案。


阅读 69

收藏
2022-07-13

共1个答案

小编典典

似乎在 ASP.NET Core 2.2 中进行了更改(我找不到有关此更改的任何公告)。如果您没有在“开发”环境中显式运行,则编译 Razor
视图,您将看不到对 .cshtml 所做的任何更改

但是,您可以使用 Startup 类中的一些配置来关闭它,如下所示。

services.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true);

对于 ASP.NET Core 3.0 及更高版本,请参阅 Alexander Christov的回答。

ASP.NET Core 3.0 及更高版本中,RazorViewEngineOptions.AllowRecompilingViewsOnFileChange不可用。

惊讶于在应用程序运行时刷新视图不起作用,我发现了以下解决方案:

  1. Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet 包添加到项目中

  2. 在 中添加以下内容Startup.cs

services.AddControllersWithViews().AddRazorRuntimeCompilation();

2022-07-13