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的区别
ASP.NET CoreAddMvc和AddMvcCore的区别
如何使用 AddMvcCore() 实现“纯”ASP.NET Core Web API