AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别

Posted Archy_Wang_1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别相关的知识,希望对你有一定的参考价值。


 

1.services.AddMvcCore()

只注册运行 Controller/Razor Pages 必要的核心服務,确保Pipeline 程序可运行,其余如像 Data Annotation Model Validation、身分验证等服务要自己加挂,除有特殊客户需求,一般不太常用。

2.services.AddControllers()

包含 AddMvcCore() 所做的动作外,再加上:

身份验证服务
Swagger/Open API 等 API 文件动态产生功能
Data Annotation - 支持 Attribute 资料检验及 IValidateObject
Formatter Mapping - 依 Request 需求提供不同格式(JSON/XML)內容
CORS - 支援跨网域整合
要用 Controller 但不会用到 View,例如纯 WebAPI,可以选这个。

3.services.AddRazorPages()

包含 AddMvcCore() 所有功能,再加上:

Razor Pages 功能
身份验证服务
Data Annotation - 支持 Attribute 资料检验及 IValidateObject
Cache Tag Helper

4.services.AddControllersWithViews()

包含 AddControllers() 的所有项目,再加上:

cshtml Razor View
Cache Tag Helper
要使用标准 Model + View + Controller 架构,通常就选这个。

5.services.AddMvc()

等于AddControllersWithViews() 加 AddRazorPages(),不想漏掉功能发挥 ASP.NET Core 最大威力,选这个就对了。

以上是关于AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别的主要内容,如果未能解决你的问题,请参考以下文章

AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的区别

在Swagger中自动生成对SwaggerDoc的调用

ASP.NET CoreAddMvc和AddMvcCore的区别

如何使用 AddMvcCore() 实现“纯”ASP.NET Core Web API

ASP.NET Core 2.0 Razor 页面使用 AddMvcCore() 而不是 AddMvc()

我不能使用'services.AddControllers().AddNewtonsoftJson()'