当返回类型为 IHttpActionResult 时,Web API 2 返回不带引号的简单字符串

问题描述 投票:0回答:4

我的问题是指这个问题

答案仅显示您必须将方法类型更改为

HttpResponseMessage
string
的解决方案。

这是我的方法:

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
4个回答
5
投票

您可以使用 ApiController.ResponseMessage(HttpResponseMessage) 方法

创建具有指定响应的

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");
}

0
投票

IHttpActionResult是WebApi2方式,你也可以使用

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

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


0
投票

我知道有点晚了,但我必须从这个问题和另一个答案中解决这个问题。

如果将“text/plain”格式化程序添加到 Web API 配置中,OP 的代码就可以工作,如此处的其他答案所示。

在另一个答案中,他们使用

this.Request...
,但它也适用于OP的

return Ok("I am send by HTTP resonse");

© www.soinside.com 2019 - 2024. All rights reserved.