在Web API中返回ActionResult内容

时间:2015-02-20 10:53:57

标签: .net json rest asp.net-web-api

我控制器中的POST方法需要在响应中返回自定义信息:

public IHttpActionResult PostStuff(PolicyModel model)
{
      return Ok("Some useful information");
}

但是在客户端上,我无法找到这些数据的位置:

client.BaseAddress = new Uri("http://localhost:51812/");
var response = client.PostAsJsonAsync("api/stuff", <my json>).Result;

'response'只包含通常的标题信息。我可能不理解OkResult的使用。我该怎么做才能返回信息?

1 个答案:

答案 0 :(得分:2)

在客户端中,您应该查看response.Content并反序列化该值(我使用的是newtonsoft json)。示例:

JsonConvert.DeserializeObject<string>(await response.Content.ReadAsStringAsync())    

无论如何,要返回成功状态,您应该从API

返回
return Request.CreateResponse(HttpStatusCode.OK);

所以客户端在响应中收到此信息并进行检查

if(response.IsSuccessStatusCode) { //do stuf }