更改后,.NET Core MVC页面无法刷新

问题描述 投票:3回答:4

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

我已经尝试使用chrome的“Empty Cache and Hard Reload”以及其他浏览器无济于事。这种情况发生在使用Visual Studio for Mac和VS Code的Windows和Mac上

在默认的.Net Core项目中,它工作正常,因此它必须是我的项目中的某些内容随之改变。我想知道我需要从哪里开始调试这个问题?我已经尝试在我的Startup.csand Program.cs几乎所有内容都没有解决方案。

asp.net-core .net-core asp.net-core-mvc asp.net-core-2.2
4个回答
15
投票

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

但是,您可以使用Startup类中的某个配置关闭此项,如下所示。

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

2
投票

使用带有命令dotnet watch run的.net core 2.2运行应用程序,每次更改后都会重新启动项目


1
投票

在ASP.NET Core 3.0中(仍然在预览中!)RazorViewEngineOptions.AllowRecompilingViewsOnFileChangeis不可用(或者没有accessibe? - 没时间检查)。

令人惊讶的是,在应用程序运行时刷新视图不起作用我发现了以下解决方案(注意,发布中的内容可能会发生变化!):

  1. Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet包添加到项目中
  2. Startup.cs中添加以下内容: 。services.AddControllersWithViews()AddRazorRuntimeCompilation();

这是好奇的full explanation ......

HTH


0
投票

你绝对确定你使用2.2吗?检查你的csproj,因为它可能是这个bug https://github.com/aspnet/Razor/issues/2466你可以尝试关闭RazorCompileOnBuild更多信息https://docs.microsoft.com/en-us/aspnet/core/razor-pages/sdk?view=aspnetcore-2.1#properties


0
投票

当观点在单独的项目中时,下面帮助了我。

if(HostingEnvironment.IsDevelopment()){ // only in development (optional)
    services.AddMvc().AddRazorOptions(o => {
        o.FileProviders.Add(new PhysicalFileProvider(PATH_TO_PROJECT));
    });
}
© www.soinside.com 2019 - 2024. All rights reserved.