Request.CreateResponse в ядре asp.net

Ниже мой код (Partial code), и я хочу перенести его в ядро asp.net. Моя проблема: "Request.CreateResponse" не работает в коде ниже. Я много делаю, но не могу найти решение. Как я могу это решить? Пакет Microsoft.AspNet.WebApi.Core также не работает.

    [HttpPost]
    public HttpResponseMessage AddBusinessUsersToBusinessUnit(MyObject request)
    {
        return Request.CreateResponse(HttpStatusCode.Unauthorized);
    }

Заранее спасибо.

Ответы

Ответ 1

Наконец, я делаю решение. :)

[HttpPost]
public HttpResponseMessage AddBusinessUsersToBusinessUnit(MyObject request)
{
    return new HttpResponseMessage(HttpStatusCode.Unauthorized);
}

Ответ 2

Если вы просто хотите вернуть код состояния, предпочтительным является следующее:

//Creates a StatusCodeResult object by specifying a statusCode.
//so controller method should return IActionResult 
return StatusCode(HttpStatusCode.Unauthorized)

Подробнее в этом ответе SO

Ответ 3

Для Core 2. 1+ верните ActionResult или IActionResult вместо HttpResponseMessage. Это дает вам невероятную гибкость. Ниже приведен пример, который также возвращает содержимое обратно.

[HttpPost]
public ActionResult<BusinessUsers> AddBusinessUsersToBusinessUnit(MyObject request)
{   var businessUsers = AddBusinessUsers(request);
    return Request.CreateResponse(HttpStatusCode.Unauthorized, businessUsers);
}

https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-2.2