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

Nig*_*ape 2 c# asp.net asp.net-web-api asp.net-web-api2

我的问题是指这个问题

答案仅显示您必须将方法类型更改为HttpResponseMessageor的解决方案string

这是我的方法:

public IHttpActionResult Get()
{
    return Ok("I am send by HTTP resonse");
}
Run Code Online (Sandbox Code Playgroud)

它返回:

"I am send by HTTP resonse"
Run Code Online (Sandbox Code Playgroud)

我预计:

I am send by HTTP response
Run Code Online (Sandbox Code Playgroud)

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

Nko*_*osi 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);
}
Run Code Online (Sandbox Code Playgroud)