.Net Core在HttpResponseMessage中返回一个int

时间:2018-01-03 10:31:54

标签: c# asp.net .net-core asp.net-core-2.0

我试图在.Net Core中复制以下ASP.Net代码:

return Request.CreateResponse( HttpStatusCode.OK, 100 );

我试过了:

using (MemoryStream ms = new MemoryStream())
{
    using (StreamWriter sw = new StreamWriter(ms))
    {
        sw.Write(100);
        return new HttpResponseMessage(HttpStatusCode.OK) {Content = new StreamContent(sw.BaseStream)};
    }
}

但它没有给我我想要的结果。我正在使用遗留API,它必须从响应流中读取整数,因此我无法选择更改设计。

下面是接收响应的代码,TryParse总是失败,我需要它才能成功。不幸的是我无法调试它:

using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
    string result = reader.ReadToEnd();

    int value = 0;

    if (Int32.TryParse(result, out value))
    {
        return value;
    }
}

1 个答案:

答案 0 :(得分:9)

.net-core不再返回HttpResponseMessage

Controller具有帮助方法,允许您返回特定的IActionResult结果/响应..

public IActionResult MyControllerAction() {
    //...

    return Ok(100);
}

将在响应正文中返回带有100的HTTP 200响应