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

.Net Core

はじめに

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

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

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

Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 3.1.6
Runtime compilation support for Razor views and Razor Pages in ASP.NET Core MVC. This package was built from the source code at

Startup.csを書き換える

services.AddControllersWithViews();

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

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

おわりに

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

タイトルとURLをコピーしました