在.net framework下我們編寫webapi時返回一般會用到HttpResponseMessage類型,如果返回值什麼內容調用此api就能返回什麼值了。但是在.net core下我們用HttpResponseMessage來當做返回值得話得到的結果可能就不是你想要的了,可能會出現一堆看起來沒什麼用的json返回值,如下所示就是我調用後的返回值
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"text/plain; charset=utf-8"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": null,
"isSuccessStatusCode": true
}
其實我們可以安裝.net core的webapi兼容包來實現的,通過nuget安裝包
Microsoft.AspNetCore.Mvc.WebApiCompatShim
然後在Startup中的ConfigureServices方法裏在AddMvc()後增加AddWebApiConventions()就行了
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().AddWebApiConventions();
}
這時你再重新調用下webapi返回的值就是你程序裏的返回值了。
附上.net core的相關組件清單,以便有用時查詢
相關組件
ASP.NET Core MVC 包含了下列組件,基於 .NET Core 的精神,只有需要用到的才需要加入參考 (於 project.json),因此開發者可以自由選擇,而不必把所有的組件都加進來。
組件 | 功能 |
---|---|
Microsoft.AspNetCore.Mvc | ASP.NET Core MVC 引用套件 |
Microsoft.AspNetCore.Mvc.Abstractions | ASP.NET Core MVC 功能的抽象層 |
Microsoft.AspNetCore.Mvc.ApiExplorer | ASP.NET Core MVC 的 API 文件支持 |
Microsoft.AspNetCore.Mvc.Core | ASP.NET Core MVC 核心組件 |
Microsoft.AspNetCore.Mvc.Cors | 提供 Web API 所需要的 CORS 能力 |
Microsoft.AspNetCore.Mvc.DataAnnotations | MVC 所需的數據註解 (Data Annotation) 功能 |
Microsoft.AspNetCore.Mvc.Formatters.Json | MVC/Web API 所需的 JSON 序列化器 |
Microsoft.AspNetCore.Mvc.Formatters.Xml | MVC/Web API 所需的 XML 序列化器 |
Microsoft.AspNetCore.Mvc.Localization | MVC 應用程序本地化支持 |
Microsoft.AspNetCore.Mvc.Razor | MVC Razor 的核心類庫 (若要在 MVC 中使用 Razor 就必須參考此組件) |
Microsoft.AspNetCore.Mvc.Razor.Host | MVC Razor 的運行時引擎 |
Microsoft.AspNetCore.Mvc.TagHelpers | MVC Tag Helper 的核心類庫 |
Microsoft.AspNetCore.Mvc.ViewFeatures | MVC View 功能的類庫 (Controller 類的操作在此) |
Microsoft.AspNetCore.Mvc.WebApiCompatShim | Web API 兼容套件 |
Microsoft.AspNetCore.Razor | Razor 的核心類庫 |