Asp.net-Core

.NET Core MVC 頁面在更改後不刷新

  • December 5, 2018

我正在最新版本 2.2 上建構 .NET Core MVC。我對 CSHTML 文件進行更改並刷新頁面時遇到問題,我的更改未反映在瀏覽器中。我必須重新啟動項目才能看到我的更改。這種情況已經發生了一段時間,所以我不確定是什麼變化導致了這個問題。

我嘗試使用 chrome 的“空記憶體和硬重載”以及其他瀏覽器無濟於事。這發生在使用 Visual Studio for Mac 和 VS Code 的 Windows 和 Mac 上

在預設的 .Net Core 項目中,它工作正常,所以它一定是我的項目中的某些東西在此過程中發生了變化。我想知道我需要從哪裡開始調試這個問題?Startup.cs我已經嘗試將我的幾乎所有內容都註釋掉Program.cs,但沒有解決方案。

似乎在 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();

這是好奇的完整解釋

引用自:https://stackoverflow.com/questions/53639969