我正在将以前在.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
?
答案 0 :(得分:2)
您可以使用Ok();
或BadRequest();
之类的固定状态代码返回
或使用动态返回的
StatusCode(<Your status code number>,<Optional return object>);
答案 1 :(得分:2)
您应该能够使用Microsoft.AspNetCore.Mvc.WebApiCompatShim nuget软件包将现有代码迁移到ASP.NET Core 2.x中。
然后您可以这样做:
return new ResponseMessageResult(result);
或者,您也可以从Controller
继承ApiController
并将代码保持原样:
public class MyController : ApiController
{
public IActionResult Get()
{
// other code...
HttpResponseMessage result = await client.SendAync(request);
if (result.StatusCode != HttpStatusCode.OK)
{
IActionResult response = ResponseMessage(result);
return response;
}
// other code...
}
}
中的更多信息
答案 2 :(得分:0)
谢谢大家的回答。我走的路线略有不同。我猜想那段代码的重点是,如果SendAsync
以任何方式失败,我想返回该错误消息。因此,我改为将其更改为:
if (result.StatusCode != HttpStatusCode.OK)
{
return BadRequest(result.ReasonPhrase);
}