我正在将以前用.NET Framework编写的一些代码移植到.NET Core。
我有过这样的经历:
HttpResponseMessage result = await client.SendAync(request);
if (result.StatusCode != HttpStatusCode.OK)
{
IHttpActionResult response = ResponseMessage(result);
return response;
}
此函数的返回值现在为IActionResult
。
如何获取HttpResponseMessage result
对象并从中返回IActionResult
?
5条答案
按热度按时间tnkciper1#
可以使用
Ok();
或BadRequest();
等硬集状态代码返回或者使用动态函数返回
这是
using Microsoft.AspNetCore.Mvc
下面是StatusCode的详细说明:
8xiog9wr2#
您应该能够通过使用Microsoft.AspNetCore.Mvc.WebApiCompatShim nuget包将现有代码迁移到ASP.NETCore2.x中。
然后,您可以执行以下操作之一:
1使用
ResponseMessageResult
2从
ApiController
继承您Controller
,并保持代码不变:官方文档中的更多信息
eanckbw93#
这在.NET v5中要容易得多(erstwhile .NET Core v5)。在Microsoft.AspNetCore.Mvc.CoreDLL中找到的ControllerBase类包含许多方法,这些方法返回从IActionResult继承的对象。IActionResult是HttpResponseMessage的替换。我在下面移植了用于返回文件的Web API方法。它基于.NET Framework v4。6.
下面是我移植到.NET v5的代码:
以下是返回实现IActionResult接口以满足特定目的的类的所有方法的完整列表:
kkbh8khc4#
谢谢大家的回答。我走了一条稍微不同的路线。我猜这段代码的意义在于,如果
SendAsync
以任何方式失败,我都希望返回该错误消息。因此,我将其改为如下所示:xoefb8l85#
这对我很有效....Net Core 6.0