web-dev-qa-db-ja.com

変更後に.NET Core MVCページが更新されない

最新バージョン2.2で.NET Core MVCを構築しています。 CSHTMLファイルに変更を加えてページを更新すると問題が発生しますが、変更はブラウザに反映されません。変更を確認するには、プロジェクトを再起動する必要があります。これはしばらくの間起きていたので、この問題の原因がどのような変化なのか正確にはわかりません。

クロムの「空のキャッシュとハードリロード」だけでなく、他のブラウザーも使用できませんでした。これは、WindowsとMacでVisual Studio for MacとVS Codeの両方を使用して発生します

デフォルトの.Net Coreプロジェクトでは正常に動作するため、プロジェクトの途中で変更されたものでなければなりません。この問題をデバッグするためにどこから始める必要があるのでしょうか?私はStartup.csand Program.cs解像度なし。

15
kevskree

ASP.NET Core 2.2で変更が行われたようです(この変更についての発表はありません)。 「開発」環境で明示的に実行していない場合、Razorビューがコンパイルされ、.cshtmlに加えられた変更は表示されません。

ただし、次のようにStartupクラスでいくつかの設定を使用してこれをオフにすることができます。

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

ASP.NET Core 3.0(まだプレビュー中!)RazorViewEngineOptions.AllowRecompilingViewsOnFileChangeが利用できない(またはaccessibeではない-チェックする時間がなかった) 。

アプリの実行中にビューを更新しても機能しなかったことに驚いて、次の解決策を見つけました(リリース時に状況が変わる可能性があることに注意してください!):

  1. Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation NuGetパッケージをプロジェクトに追加します
  2. Startup.csに次を追加します。

    services.AddControllersWithViews()。AddRazorRuntimeCompilation();

これが 完全な説明 好奇心の強い人のためです...

HTH

6

コマンド dotnet watch run プロジェクトはすべての変更後に再起動されます

2
tramada

以下は、ビューが別のプロジェクトにあったときに役立ちました。

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

2.2を使用していると確信していますか?このバグである可能性があるため、csprojを確認してください https://github.com/aspnet/Razor/issues/2466RazorCompileOnBuild more info https: //docs.Microsoft.com/en-us/aspnet/core/razor-pages/sdk?view=aspnetcore-2.1#properties

0
Wanton