【问题标题】:Web API 2 return simple string without quotation mark when return type is IHttpActionResult当返回类型为 IHttpActionResult 时,Web API 2 返回不带引号的简单字符串
【发布时间】:2019-11-02 02:36:46
【问题描述】:

我的问题是指这个question

答案仅显示了您必须将方法类型更改为HttpResponseMessagestring 的解决方案。

这是我的方法:

public IHttpActionResult Get()
{
    return Ok("I am send by HTTP resonse");
}

返回:

"I am send by HTTP resonse"

我希望:

I am send by HTTP response

有没有办法返回一个不带引号的简单字符串,方法的返回类型是IHttpActionResult

【问题讨论】:

    标签: c# asp.net asp.net-web-api asp.net-web-api2


    【解决方案1】:

    您可以使用ApiController.ResponseMessage(HttpResponseMessage) Method

    使用指定的响应创建一个ResponseMessageResult

    ResponseMessageResult 派生自IHttpActionResult

    public IHttpActionResult Get() {
        var message = "I am send by HTTP response";
        var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK) {
            Content = new StringContent(message, System.Text.Encoding.UTF8, "text/plain")
        };
        return ResponseMessage(httpResponseMessage);
    }
    

    【讨论】:

      【解决方案2】:

      改成:

      public IHttpActionResult Get()
      {
          return Content("I am send by HTTP resonse");
      }
      

      【讨论】:

        【解决方案3】:

        IHttpActionResult是WebApi2方式,也可以使用

        public HttpResponseMessage Get()
        {
            return Request.CreateResponse(HttpStatusCode.OK, "I am send by HTTP response");
        }
        

        此外,如果您希望不使用双引号,请参阅您在问题中指定的链接。

        【讨论】:

        • 所以我需要返回 HttpResponseMessage 并且不能返回 IHttpActionResult
        • @SrinivasanJayakumar :所以你的答案基本上是阅读另一个答案,该答案已经由 OP 链接,而他显然没有找到解决方案?
        • @jps:另一个链接有答案,可以发送不带引号的响应,但这个问题特定于返回 HttpResponseMessage 作为函数的返回类型。
        • @Nightscape:我们可以返回两者,但我更喜欢使用 IHttpActionResult 作为推荐。基于这个问题,我给出了返回 HttpResponseMessage 的建议。
        猜你喜欢
        • 2016-02-14
        • 2018-09-10
        • 1970-01-01
        • 1970-01-01
        • 2019-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多