C# ASP.NET WebAPI-与[FromBody]有关的问题

C# ASP.NET WebAPI-与[FromBody]有关的问题,c#,asp.net-web-api,C#,Asp.net Web Api,我希望实现一个新的API,但我选择了C#,而不是走我通常的PHP路线 我对“MVC4API”示例做了一些尝试,但到目前为止,我的请求似乎无法正常工作 我创建了一个名为“值”的控制器,并使用以下方法: [HttpPost] public void Post([FromBody]string value) { string body = value; } 然后,我通过fiddler向上述API发送了以下POST请求: User-Agent: Fiddler Host: localhost:

我希望实现一个新的API,但我选择了C#,而不是走我通常的PHP路线

我对“MVC4API”示例做了一些尝试,但到目前为止,我的请求似乎无法正常工作

我创建了一个名为“值”的控制器,并使用以下方法:

[HttpPost]
public void Post([FromBody]string value)
{
    string body = value;
}
然后,我通过fiddler向上述API发送了以下POST请求:

User-Agent: Fiddler
Host: localhost:56501
Content-Length: 10
Content-Type: application/x-www-form-urlencoded; charset=UTF-8

value=test

运行此操作后,该方法看起来好像正在被调用,但当尝试获取通过正文发送的“值”时,它似乎没有接收到该值,而是给我一个空值。

我似乎无法使其适用于
内容类型:application/x-www-form-urlencoded
,但这应该同时起作用:)



因此我发现,如果您需要使其与
应用程序/x-www-form-urlencoded
一起工作,那么您只需要将
=value
作为请求的主体进行传递。确实很奇怪,但我想这不是MVC,而是WebApi,所以无论如何,您不应该传递
application/x-www-form-urlencoded

您能否尝试使用调试器查看您在Request.Form中得到的内容?对我来说,这通常有助于了解我做错了什么:)
var x=Request.Form,该行/下一行上的断点,将鼠标悬停在对象上并单击以查看其中的内容:)这确实有效,是的,但理想情况下我希望将其命名。不过,多亏了这一点,这将在将来派上用场:-)如果你真的想命名它,你可以创建一个viewModel,只使用一个属性,并删除
[FromBody]
属性。我认为你提供的信息足以让我使用JSON对象而不是表单编码的帖子。谢谢你!
User-Agent: Fiddler
Host: localhost:56501
Content-Length: 6
Content-Type: application/json; charset=UTF-8

"test"