AddMvcCore,AddControllers,AddControllersWithViews,AddRazorPages的區別

 

 1.services.AddMvcCore()

只註冊運行 Controller/Razor Pages 必要的核心服務,確保 Pipeline 程序可動作,其餘如像 Data Annotation Model Validation、身分驗證等服務要自己加掛,除有特殊客製需求,一般不太常用。

 

2.services.AddControllers()

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

  1. 身分驗證服務
  2. Swagger/Open API 等 API 文件動態產生功能
  3. Data Annotation - 支援 Attribute 資料檢核及 IValidateObject
  4. Formatter Mapping - 依 Request 需求提供不同格式(JSON/XML)內容
  5. CORS - 支援跨網域整合

要用 Controller 但不會用到 View,例如純 WebAPI,可以選這個

 

3.services.AddRazorPages()

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

  1. Razor Pages 功能
  2. 身分驗證服務
  3. Data Annotation - 支援 Attribute 資料檢核及 IValidateObject
  4. Cache Tag Helper

 

4.services.AddControllersWithViews()

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

  1. cshtml Razor View
  2. Cache Tag Helper

要使用標準 Model + View + Controller 架構,通常就選這個

 

5.services.AddMvc()

等於 AddControllersWithViews() 加 AddRazorPages(),不想漏掉功能發揮 ASP.NET Core 最大威力,選這個就對了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章