日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

AddMvc 和 AddMvcCore 的区别

發(fā)布時(shí)間:2023/12/4 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AddMvc 和 AddMvcCore 的区别 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

本文出自《從零開(kāi)始學(xué) ASP.NET CORE MVC》目錄?
視頻課程效果更佳:從零開(kāi)始學(xué) Asp.Net Core MVC?

ASP.NET Core 為什么有 AddMvc 和 AddMvcCore 他們是什么關(guān)系?

在本視頻中,我們將討論 AddMvc()和 AddMvcCore()方法之間的區(qū)別。

要在 ASP.NET Core 應(yīng)用程序中設(shè)置 MVC,我們?cè)?Startup 類(lèi)的 ConfigureServices()方法中調(diào)用 IServiceCollection 接口的 AddMvc()方法。

services.AddMvc();

除了 AddMvc()方法,我們?cè)?IServiceCollection 接口上也有 AddMvcCore()方法。 因此,我們想到的一個(gè)顯而易見(jiàn)的問(wèn)題是,這兩種方法之間的區(qū)別是什么。

AddMvc() v/s AddMvcCore()

在我們討論 AddMvc()和 AddMvcCore()方法之間的區(qū)別之前,讓我們修改以下 HomeController 以返回 JSON 格式的數(shù)據(jù),而不是簡(jiǎn)單的字符串。

目前,沒(méi)有為 HomeController 類(lèi)指定基類(lèi)。 它現(xiàn)在還可以為我們從 Index()動(dòng)作方法返回一個(gè)簡(jiǎn)單的字符串。

public class HomeController
{
public string Index()
{
return "Hello from MVC";
}
}

但是,如果我們想要從 Index()操作方法返回 HTML 視圖或 JSON 數(shù)據(jù),則我們的 HomeController 類(lèi)必須繼承框架提供的 Controller 類(lèi)。 Controller 基類(lèi)提供了返回不同結(jié)果的支持,如 JsonResult,ViewResult,PartialViewResult 等。 修改 HomeController 類(lèi)以從 Controller 類(lèi)派生并從 Index()方法返回 JsonResult,如下所示。

public class HomeController : Controller
{
public JsonResult Index()
{
return Json(new { id=1, name="pragim" });
}
}

請(qǐng)注意:Controller 類(lèi)存在于 Microsoft.AspNetCore.Mvc 命名空間中。

此時(shí),運(yùn)行應(yīng)用程序,我們應(yīng)該按預(yù)期在瀏覽器中看到 JSON 數(shù)據(jù)。

現(xiàn)在,在 ConfigureServices()方法中調(diào)用 AddMvcCore()方法而不是 AddMvc()并運(yùn)行應(yīng)用程序。

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

我們收到以下錯(cuò)誤

沒(méi)有為“Microsoft.AspNetCore.Mvc.Formatters.Json.Internal.JsonResultExecutor”類(lèi)型的服務(wù)注冊(cè)

為了能夠返回 JSON 數(shù)據(jù),需要在依賴(lài)注入容器中注冊(cè) JsonFormatterServices。AddMvc()方法執(zhí)行此操作,但不執(zhí)行 AddMvcCore()方法。您可以通過(guò)查看 ASP.NET Core MVC Github 頁(yè)面上的源代碼來(lái)確認(rèn)這一點(diǎn)。

https://github.com/aspnet/Mvc/blob/release/2.2/src/Microsoft.AspNetCore.Mvc/MvcServiceCollectionExtensions.cs

顧名思義,AddMvcCore()方法只添加核心 MVC 服務(wù)。另一方面,AddMvc()方法添加了所有必需的 MVC 服務(wù)。AddMvc()方法在內(nèi)部調(diào)用 AddMvcCore()方法,以添加所有核心 MVC 服務(wù)。因此,如果我們調(diào)用 AddMvc()方法,則無(wú)需再次顯式調(diào)用 AddMvcCore()方法。

我希望這可以澄清 AddMvc()和 AddMvcCore()方法之間的區(qū)別。

原文地址:https://www.52abp.com/wiki/mvc/V0.16/17.AddMvcVsAddMvcCore

.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總?http://www.csharpkit.com?

總結(jié)

以上是生活随笔為你收集整理的AddMvc 和 AddMvcCore 的区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。