Özellikle daha önce ASP.NET MVC uygulaması geliştirenler bilirler, bilgisayarımızda çalışırken view değişikliklerinde projeyi yeniden başlatmamıza gerek kalmadan sayfayı yenileyerek değişiklikleri görebiliyorduk.
.NET CORE ile yeni bir MVC projesi geliştiriyorsanız, viewlerde bir şey değiştirdiğinizde, değişikliğin runtime’a yansımadığını farketmişsinizdir. Bunun sebebi eski yapıya nazaran viewlerin build anında compile edilerek kendilerine ait bir .Views.dll içerisinde toplanıyor olması. Normal kullanımda da biz viewi değiştirdiğimiz zaman bu değişiklik dll’e yansımıyor ve bu sebeple de değişikliği göremiyoruz. Sorunun çözümü için Razor sdk içerisinde yer alan runtime compilation özelliğini aktif hale getirmemiz gerekiyor ;
ASP.NET CORE 2.2 için Startup.cs dosyanızın Configure metoduna aşağıdaki satırı eklemeniz yeterli.
services.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = true);
ASP.NET CORE 3.1 için öncelikle nuget üzerinden “Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation” paketini kurmanız gerekiyor. Ardından Startup.cs doyanızın ConfigureServices metoduna aşağıdaki satırı eklemeniz yeterli.
public IWebHostEnvironment Env { get; set; }
public void ConfigureServices(IServiceCollection services)
{
IMvcBuilder builder = services.AddRazorPages();
#if DEBUG
if (Env.IsDevelopment())
{
builder.AddRazorRuntimeCompilation();
}
#endif
}
Kaynaklar:
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
https://stackoverflow.com/questions/53639969/net-core-mvc-page-not-refreshing-after-changes
Bir yanıt yazın