Страница.NET Core MVC не обновляется после изменений
Я создаю.NET Core MVC в последней версии 2.2. У меня возникла проблема, когда я вношу изменения в файл CSHTML и обновляю страницу, мои изменения не отражаются в браузере. Мне нужно перезапустить проект, чтобы увидеть мои изменения. Это происходит какое-то время, поэтому я не совсем уверен, какие изменения вызвали эту проблему.
Я пробовал использовать хром "Empty Cache и Hard Reload", а также другие браузеры безрезультатно. Это происходит в Windows и Mac, используя Visual Studio для Mac и VS Code
В стандартном проекте.Net Core он отлично работает, поэтому в моем проекте это должно быть что-то изменившееся на этом пути. Мне интересно, где мне нужно начать, чтобы отладить эту проблему? Я пробовал комментировать почти все в моих Startup.cs
и Program.cs
без разрешения.
Ответы
Ответ 1
Похоже, что в ASP.NET Core 2.2 было сделано изменение (и я не могу найти никаких объявлений об этом изменении). Если вы явно не работаете в среде "Разработка", то Razor Views компилируются, и вы не увидите никаких изменений, внесенных в.cshtml.
Однако вы можете отключить это, используя некоторые настройки в вашем классе запуска следующим образом.
services.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true);
Ответ 2
В ASP.NET Core 3.0 (на момент написания еще в предпросмотре!) RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
недоступен (или нет доступа? - не успел проверить).
Удивленный тем, что обновление представления во время работы приложения не работает, я обнаружил следующее решение (будьте осторожны, в выпуске все может измениться!):
- Добавьте Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation пакет NuGet в
проект
Добавьте следующее в Startup.cs
:
services.AddControllersWithViews()AddRazorRuntimeCompilation();.
Здесь полное объяснение для любопытных...
НТН
Ответ 3
Используя .net core 2.2, запустив приложение с командой dotnet watch run
, проект перезапускается после каждого изменения
Ответ 4
Ниже помогли мне, когда представления были в отдельном проекте.
if(HostingEnvironment.IsDevelopment()){ // only in development (optional)
services.AddMvc().AddRazorOptions(o => {
o.FileProviders.Add(new PhysicalFileProvider(PATH_TO_PROJECT));
});
}
Ответ 5
Вы абсолютно уверены, что используете 2.2? Проверьте свой csproj, потому что это может быть эта ошибка https://github.com/aspnet/Razor/issues/2466. Вы можете попробовать отключить RazorCompileOnBuild
больше информации https://docs.microsoft.com/en-us/aspnet/core/бритва-страниц/SDK? вид = aspnetcore-2.1 # свойства
Ответ 6
Решение @Chris Aitchison было решением для меня!