deezus blog

.Net Core、Typescriptを中心に技術的ノウハウを公開しています

ASP.NETCore3.0でViewの変更をリアルタイムに反映させる

はじめに

.NETCore3.0になりrazorのViewがプリコンパイルされるようになりました
発行時にはパフォーマンス向上などメリットもあるのですが、開発時はViewを変更するたびに再起動しなければ反映されないので非常に面倒です
2.2以前のようにViewのcshtmlの更新が即座に反映される方法を調査しました

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

nugetで Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilationをインストールします

Startup.csを書き換える

services.AddControllersWithViews()

上記コードを下記のように書き換えます
.NETCoreでも#if DEBUGを使うことでデバック時のみ実行されるブロックを定義できます

#if DEBUG
services.AddControllersWithViews().AddRazorRuntimeCompilation();
#else
services.AddControllersWithViews();
#endif

おわりに

これでViewを変更後、ブラウザを再更新すると変更が反映されるようになりました