Как вернуть код HttpStatus из методов API в моем ASP.NET Core 1.0, если есть проблема?Возврат HttpStatusCode в API-методе
Если метод должен возвращать определенный тип объекта, когда я пытаюсь вернуть код состояния Http, я получаю сообщение о том, что я не могу преобразовать свой объект в код состояния.
[HttpPost]
public async Task<SomeObject> Post([FromBody] inputData)
{
// I detect an error and want to return BadRequest HttpStatus
if(inputData == null)
return new HttpStatusCode(400);
// All is well, so return the object
return myObject;
}
ошибка правильно, вы должны рассмотреть, чтобы вернуть 'Task' и изменить возвращение к 'вернуть Ok (MyObject);' –
В WebAPI, вы бросаете исключение с определенным кодом ответа (представленный с помощью Enum). Это не позволяет исключению пузыря вверх по стеку, но просто возвращает указанный вами код состояния. 'throw new HttpResponseException (HttpStatusCode.NotFound);' – James
@James Спасибо за ваш ответ, но мне трудно найти исключение HttpResponseException. Похоже, что это в System.Web.Http namesapce, но мой ASP.NET Core 1.0 даже не позволяет мне ссылаться на него. Это предполагает, что я устанавливаю этот пакет NuGet https://www.nuget.org/packages/Microsoft.AspNet.Mvc.WebApiCompatShim/. Это все еще правильный способ справиться с ним в ASP.NET Core 1.0? – Sam