Return content with IHttpActionResult for non-OK response

前端 未结 15 2229
北恋
北恋 2020-11-28 17:55

For returning from a Web API 2 controller, I can return content with the response if the response is OK (status 200) like this:

    public IHttpActionResult          


        
15条回答
  •  臣服心动
    2020-11-28 18:42

    I ended up going with the following solution:

    public class HttpActionResult : IHttpActionResult
    {
        private readonly string _message;
        private readonly HttpStatusCode _statusCode;
    
        public HttpActionResult(HttpStatusCode statusCode, string message)
        {
            _statusCode = statusCode;
            _message = message;
        }
    
        public Task ExecuteAsync(CancellationToken cancellationToken)
        {
            HttpResponseMessage response = new HttpResponseMessage(_statusCode)
            {
                Content = new StringContent(_message)
            };
            return Task.FromResult(response);
        }
    }
    

    ... which can be used like this:

    public IHttpActionResult Get()
    {
       return new HttpActionResult(HttpStatusCode.InternalServerError, "error message"); // can use any HTTP status code
    }
    

    I'm open to suggestions for improvement. :)

提交回复
热议问题