将字符串POST到ASP.NET 4.5和VS 2012 RC中的Web API控制器

dur*_*ula 11 asp.net-mvc .net-4.5 asp.net-web-api

我是WebAPI的新手并且正在努力学习它.我有一个WebAPI控制器,我试图使用单元测试中的WebClient来发布一个字符串.

我使用下面的代码将字符串发布到我的WebAPI.

using (var client = new WebClient())
{
   client.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
   var result = client.UploadString(_webapiUrl, "POST", "hello");
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制器.

[HttpPost]
public byte[] Post(string value)
{
   // Do something with value
}
Run Code Online (Sandbox Code Playgroud)

我可以在我的控制器上找到一个断点,但它似乎没有POST任何字符串,我总是得到NULL值.我该怎么做才能获得价值?

谢谢

Ali*_*tad 10

如果您只需要接收一个值,请=在值之前使用:

var result = client.UploadString(_webapiUrl, "POST", "=hello"); // NOTE '='
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,通过在[FromBody]前面加上action参数,这对我有用.这是WebAPI的奇怪行为. (4认同)