与HttpRequestMessage等效的ASP.NET Core是什么?

时间:2017-08-08 12:28:17

标签: c# json rest asp.net-core asp.net-core-webapi

我找到了一个blog post,它显示了如何以字符串形式接收POSTed JSON。

我想知道在Controller中的REST Post方法中执行与以下代码相同的新原生方式是什么:

public async Task<HttpResponseMessage> Post(HttpRequestMessage request)
{
    var jsonString = await request.Content.ReadAsStringAsync();

    // Do something with the string 

    return new HttpResponseMessage(HttpStatusCode.Created);
}

另一个选项对我来说不起作用,我想因为我在请求标题中没有使用Content-Type: application/json(不能改变它),我得到了415。

public HttpResponseMessage Post([FromBody]JToken jsonbody)
{
    // Process the jsonbody 

    return new HttpResponseMessage(HttpStatusCode.Created);
}

1 个答案:

答案 0 :(得分:3)

在.Net Core中,他们已经合并了Web API和MVC,因此您可以使用IActionResult或其中一个衍生产品来执行此操作。

public IActionResult Post([FromBody]JToken jsonbody)
{
    // Process the jsonbody 

    return Created("", null);// pass the url and the object if you want to return them back or you could just leave the url empty and pass a null object
}