前言:
本文使用 .NET Core SDK 3.1 的版本
在 ASP.NET MVC 中,项目默认是视图运行时编译,在 ASP.NET Core MVC 中视图运行时编译需要手动开启。
一、新项目开启运行时编译
在创建新的 ASP.NET Core Web 应用程序时,如果选择 Razor 或者 MVC 模板,在右侧栏中会出现身份验证和高级的选项,在高级选项中勾选上 Enable Razor runtime compilation 项即可。
二、旧项目开启运行时编译
首先要引入运行时编译的 NuGet 包:
Install-Package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation -Version 3.1.10
直接注册视图运行时编译的服务
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews()
.AddRazorRuntimeCompilation();
}
在注册视图运行时编译的服务以后在开发时就已经能够实现功能了,
但是在发布的时候 Views 目录会被编译为 *.Views.dll 文件,
要解决这个问题可以在项目中加入 RazorCompileOnBuild 和 RazorCompileOnPublish 的如下配置。
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<UserSecretsId>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</UserSecretsId>
<RazorCompileOnBuild>false</RazorCompileOnBuild>
<RazorCompileOnPublish>false</RazorCompileOnPublish>
</PropertyGroup>