wake-up-neo.com

.NET Core MVC-Seite wird nach Änderungen nicht aktualisiert

Ich baue eine .NET Core MVC auf der neuesten Version 2.2 auf. Ich habe ein Problem, wenn ich Änderungen an der CSHTML-Datei vornehme und die Seite aktualisiere. Meine Änderungen wirken sich nicht auf den Browser aus. Ich muss das Projekt neu starten, um meine Änderungen zu sehen. Dies geschieht bereits seit einiger Zeit, sodass ich nicht genau weiß, welche Änderung dieses Problem verursacht hat.

Ich habe erfolglos versucht, den Chrome "Empty Cache and Hard Reload" sowie andere Browser zu verwenden. Dies geschieht unter Windows und Mac mit Visual Studio für Mac und VS Code

In einem standardmäßigen .Net Core-Projekt funktioniert es einwandfrei. Es muss sich also etwas in meinem Projekt geändert haben. Ich frage mich, wo ich anfangen muss, um dieses Problem zu beheben? Ich habe versucht, fast alles in meinem Startup.cs Und Program.cs Ohne Auflösung auszukommentieren.

15
kevskree

Offenbar wurde in ASP.NET Core 2.2 eine Änderung vorgenommen (und ich kann keine Ankündigungen zu dieser Änderung finden). Wenn Sie nicht explizit in der Entwicklungsumgebung ausgeführt werden, werden die Razor-Ansichten kompiliert und es werden keine Änderungen an der .cshtml-Datei angezeigt

Sie können dies jedoch mithilfe einiger Konfigurationsschritte in Ihrer Startup-Klasse wie folgt deaktivieren.

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

In ASP.NET Core 3.0 (noch in einer Vorschau!) RazorViewEngineOptions.AllowRecompilingViewsOnFileChange Ist nicht verfügbar (oder nicht erreichbar? - hatte keine Zeit dazu prüfen).

Überrascht, dass das Aktualisieren einer Ansicht während der Ausführung der App nicht funktioniert hat, entdeckte ich die folgende Lösung (Vorsicht, Änderungen in der Version sind möglich!):

  1. Fügen Sie dem Projekt Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGet-Paket hinzu
  2. Fügen Sie in Startup.cs Folgendes hinzu:

    services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;

Hier ist das vollständige Erklärung für die Neugierigen ...

HTH

6

Verwenden von .net core 2.2 mit dem Befehl dotnet watch run Das Projekt wird nach jeder Änderung neu gestartet

2
tramada

Unten hat mir geholfen, wenn Ansichten in einem separaten Projekt waren.

if(HostingEnvironment.IsDevelopment()){ // only in development (optional)
    services.AddMvc().AddRazorOptions(o => {
        o.FileProviders.Add(new PhysicalFileProvider(PATH_TO_PROJECT));
    });
}
1
smoq

Sind Sie absolut sicher, dass Sie 2.2 verwenden? Überprüfen Sie Ihren csproj, da dies ein Fehler sein könnte https://github.com/aspnet/Razor/issues/2466 Sie könnten versuchen, RazorCompileOnBuild auszuschalten. Weitere Informationen https: //docs.Microsoft.com/en-us/aspnet/core/razor-pages/sdk?view=aspnetcore-2.1#properties

0
Wanton