通过HttpClient.PostAsJsonAsync将多个标量参数传递给WebAPI

时间:2013-03-13 08:27:38

标签: c# asp.net-web-api

这是我的方法:

[HttpPost]
[ActionName("TestString")]
public string TestString([FromBody] int a, [FromBody] int b, [FromBody] int c)
{
  return "test " + a + " " + b + " " + c;
}

有什么方法可以使用HttpClient.PostAsJsonAsync

来调用此方法

我试过这个:

HttpResponseMessage response = client.PostAsJsonAsync("api/task/TestString","a=8,b=5,c=6").Result;

但是我收到了这个错误:StatusCode: 500, ReasonPhrase: 'Internal Server Error'

提前致谢!

1 个答案:

答案 0 :(得分:2)

我很确定你只允许使用一个[FromBody]标签。尝试(添加自己的错误处理等):

[HttpPost]
[ActionName("TestString")]
public string TestString([FromBody] dynamic body)
{
  return "test " + body.a.ToString() + " " + body.b.ToString() + " " + body.c.ToString();
}

如果表单实际上包含a,b和c。

,这应该可行