Как добавить «код» в ответ Свода IHttpActionResult возврата BadRequest (Message)

Обновить

April 2019

Просмотры

18 раз

0

Я возвращаю BadRequest ( «Ошибка Invalid продукта Id»), который возвращает мне код ответа 400 и тело ответа

{
    "error": {
    "code": "",
    "message": "Failed Invalid Product Id"
     }
}

Как я могу отправить код ответа 400 в теле ответа так что я получаю ответ тела как:

{
    "error": {
    "code": 400,
    "message": "Failed Invalid Product Id"
     }
}

1 ответы

0

You can do something like this, with out testing it:

return Content((HttpStatusCode)400, "Failed Invalid Product Id");

If you really want to have customized way to do it than you need to implement you own class like the following example:

public class ErrorResult : IHttpActionResult { private readonly Error _error; private readonly HttpRequestMessage _request;

public ErrorResult(Error error, HttpRequestMessage request)
{
    _error = error;
    _request = request;
}

public Task<HttpResponseMessage> ExecuteAsync(CancellationToken cancellationToken)
{
    var errorList = new List<Error>();
    errorList.Add(_error);

    var err = new Errors()
    {
        ErrorList = errorList
    };

    var response = new HttpResponseMessage(HttpStatusCode.BadRequest)


       {
            Content = new ObjectContent<Errors>(err, new JsonMediaTypeFormatter()),
            RequestMessage = _request
        };
        return Task.FromResult(response);
    }
}

public class Error
{
    public string Code { get; set; }
    public string Message { get; set; }
}

public class Errors
{
    public List<Error> ErrorList { get; set; }
}