Подтвердить что ты не робот

Когда я разрабатываю ASP.NET Core MVC, какую службу я должен использовать? AddMvc или AddMvcCore?

Я изучаю ASP.NET Core MVC из книги, этот фрагмент кода выглядит следующим образом:

введите описание изображения здесь

Поскольку книга касается ASP.NET Core MVC, а не ASP.NET MVC, я думаю, что мне нужно использовать AddMvcCore(), а не AddMvc(), как показано ниже,

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvcCore();// or
        //services.AddMvc();
    }

Вопросы

Что я здесь делаю правильно?

4b9b3361

Ответ 1

Посмотрите на класс MvcServiceCollectionExtensions.cs на ASP.NET Core MVC GitHub repo:

public static IMvcBuilder AddMvc(this IServiceCollection services)
{
    if (services == null)
    {
        throw new ArgumentNullException(nameof(services));
    }

    var builder = services.AddMvcCore();

    builder.AddApiExplorer();
    builder.AddAuthorization();

    AddDefaultFrameworkParts(builder.PartManager);

    // Order added affects options setup order

    // Default framework order
    builder.AddFormatterMappings();
    builder.AddViews();
    builder.AddRazorViewEngine();
    builder.AddCacheTagHelper();

    // +1 order
    builder.AddDataAnnotations(); // +1 order

    // +10 order
    builder.AddJsonFormatters();

    builder.AddCors();

    return new MvcBuilder(builder.Services, builder.PartManager);
}

AddMvcCore() и AddMvc() оба возвращают IMvcBuilder, которые могут использоваться для дальнейшей настройки служб MVC.

AddMvcCore(), как следует из названия, добавляет только основные компоненты, требуя от вас добавить любое другое промежуточное программное обеспечение (необходимое для вашего проекта).

AddMvc() внутренне вызывает AddMvcCore() и добавляет другое промежуточное ПО, такое как движок просмотра Razor, форматирование JSON, CORS и т.д.

В настоящее время я буду следовать тому, что предлагает ваш учебник, и придерживаться AddMvc().