首页 > 解决方案 > 使用“AddControllersWithViews()”时禁用开发中的预编译视图

问题描述

我正在开发 ASP.NET Core 5.0.1 项目,我想知道如何在开发时禁用预编译视图。如果我更改了一些 html 代码并且我不想那样,重新加载页面需要很长时间。我知道它在产品中很有用,但我想在开发时禁用。

任何人都可以帮助我吗?

更新

应用程序.csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

</Project>

启动.cs

public class Startup
{
    public void ConfigureServices(IServiceCollection services, IWebHostEnvironment env)
    {
        services.AddControllersWithViews();
    }

    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseRouting();
        app.UseEndpoints(routes =>
        {
            routes.MapControllerRoute(
                name: "default",
                pattern: "{controller=Home}/{action=Index}/{id?}"
            );
        });
    }
}

标签: asp.net-coreasp.net-core-5.0

解决方案


终于我找到了答案。在ASP.NET Core 3.1ASP.NET Core 5.0上使用AddControllersWithViews()时,以下解决方案不起作用:

解决方案比我想象的要简单。

更新.csproj 文件如下,没有任何条件:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.1" />
  </ItemGroup>

</Project>

更新ConfigureServices方法如下:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews().AddRazorRuntimeCompilation();
}

完成。调试时,程序不会等待编译视图文件。


推荐阅读