Return content with IHttpActionResult for non-OK response

前端 未结 15 2225
北恋
北恋 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:43

    @mayabelle you can create IHttpActionResult concrete and wrapped those code like this:

    public class NotFoundPlainTextActionResult : IHttpActionResult
    {
        public NotFoundPlainTextActionResult(HttpRequestMessage request, string message)
        {
            Request = request;
            Message = message;
        }
    
        public string Message { get; private set; }
        public HttpRequestMessage Request { get; private set; }
    
        public Task ExecuteAsync(CancellationToken cancellationToken)
        {
            return Task.FromResult(ExecuteResult());
        }
    
        public HttpResponseMessage ExecuteResult()
        {
            var response = new HttpResponseMessage();
    
            if (!string.IsNullOrWhiteSpace(Message))
                //response.Content = new StringContent(Message);
                response = Request.CreateErrorResponse(HttpStatusCode.NotFound, new Exception(Message));
    
            response.RequestMessage = Request;
            return response;
        }
    }
    

提交回复
热议问题