Отключить предварительно скомпилированные представления при разработке при использовании AddControllersWithViews()

Я разрабатываю проект ASP.NET Core 5.0.1 и хочу знать, как отключить предварительно скомпилированные представления во время разработки. Перезагрузка страницы занимает много времени, если я изменяю какой-либо html-код, а я этого не хочу. Я знаю, что это полезно для продукта, но я хочу отключить его при разработке.

Кто-нибудь может мне помочь?

ОБНОВЛЕНИЕ

app.csproj

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

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

</Project>

Startup.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?}"
            );
        });
    }
}

person serhattsnmz    schedule 18.01.2021    source источник
comment
Вы пробовали принятое решение в этом вопросе stackoverflow.com/questions/50778521/? Если вы пробовали это, было бы неплохо, если бы вы включили код, который вы пробовали, а также ссылку на этот вопрос, на который уже был дан ответ. Это принято и получило большое количество голосов, поэтому, похоже, оно работает. Если возможно, попробуйте простой демонстрационный проект, ориентированный на .NET Core более ранних версий, и посмотрите, работает ли он. Вернитесь к своему текущему проекту и попробуйте его. Все такие попытки должны быть включены в ваш вопрос, чтобы показать, что вы действительно очень старались.   -  person King King    schedule 18.01.2021
comment
Кстати, при попытке использовать вышеуказанное решение обязательно очистите все выходные файлы, прежде чем пытаться отлаживать себя. Существующие скомпилированные файлы представления могут заставить вас неправильно понять, что они не работают, но на самом деле они могут работать.   -  person King King    schedule 18.01.2021
comment
Спасибо за ответ @KingKing, я попробовал ссылку, которую вы мне дали, и документ здесь docs.microsoft.com/en-us/aspnet/core/mvc/views/, но я не могу делать то, что хочу . Пробовал и 3.1 и 5.0 и оба не работали. Может ли это быть из-за того, что я использую ControllersWithViews? Не: я обязательно очистил все выходные файлы и пересобрал проект.   -  person serhattsnmz    schedule 19.01.2021


Ответы (1)


Наконец я нашел ответ. При использовании AddControllersWithViews() в ASP.NET Core 3.1 и ASP.NET Core 5.0 следующие решения не работают:

Решение проще, чем я думаю на самом деле.

Обновите файл .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();
}

Готово. При отладке программа не будет ждать компиляции файлов представления.

person serhattsnmz    schedule 19.01.2021