当我开发ASP.NETCoreMVC时,我应该使用哪个服务?AddMvc还是AddMvcCore?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (1193)

我正在从一本书中学习ASP.NETCoreMVC,所讨论的代码片段如下,

因为这本书是关于ASP.NETCoreMVC的,而不是ASP.NETMVC,所以我认为我必须使用AddMvcCore()而不是AddMvc()如下,

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

提问于
用户回答回答于
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等。

扫码关注云+社区

领取腾讯云代金券