NetCore Razor页面动态刷新-Add Razor runtime compilation when developing ASP.NET Core
- 网络 | 点击量:当我开始研究 ASP.NET Core时,我有点惊讶,我不得不编译我的网络项目。Razor 文件的运行时间汇编刚刚开箱即用, ASP.NET Mvc 。在这篇文章中,我将向您展示我们将如何解决此问题,当将 elmah.io 应用程序迁移到"ASP.NET Core"cshtml
微软写了一些关于如何启用 ASP.NET 核心中 Razor 文件的运行时间汇编的好文档。创建新的(>ASP.NET Core3.1)项目时,您甚至可以单击复选框。我喜欢在强类型 C# 中拥有我的主要配置, 具有 IntelliSense 的好处, 但作为向导的一部分提供的解决方案则不是这样。
要设置运行时间编译,首先安装 NuGet 包:Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
在Startup.cs文件中的方法中,调用该方法。由于我们仅在开发过程中更新Razor文件,而不是在生产中(对吗?),请在这样的声明中将包裹起来:ConfigureServices
Startup.cs
AddRazorRuntimeCompilation
if
// ...var mvcBuilder = services.AddControllersWithViews(); if (Env.IsDevelopment()) { mvcBuilder.AddRazorRuntimeCompilation(); }// ...
确保仅在开发过程中添加运行时间编译。属性应注入构造器中,如果尚未有:IsDevelopment
Env
public IWebHostEnvironment Env { get; set; }public Startup(IWebHostEnvironment env){ Env = env; }
在 C# 中配置此内容的另一个好处是有可能包括选项。可以自定义Razor项目文件夹(不用添加"Views"):
mvcBuilder.AddRazorRuntimeCompilation(options => { options.FileProviders.Add(new PhysicalFileProvider(customPath)); //列options.FileProviders.Add(new PhysicalFileProvider("MICZ.WebSite")); });