使用Premitive类型和application / x-www-form-urlencoded时,Web API绑定始终为空

时间:2017-06-24 03:00:20

标签: asp.net-web-api asp.net-web-api2

以下是Web API模板的默认方法。大多数时候我使用application / json作为Content-Type但是当我使用application / x-www-form-urlencoded并将数据传递给api作为value = test时。它无法识别或绑定。

public void Post([FromBody]string value)
{
}

当我将值传递给= test而不是value = test时,这个东西工作但是如果我将相同的东西传递给MVC控制器它就可以了。

如果我做这样的事情那么它就可以了。

public class TestModel
{
   public string value {get;set;}
}

public void Post([FromBody]TestModel model)
{
}

第一种方法有什么问题?为什么它不起作用?为什么它使用MVC Controller或Binding而不是Web API参数绑定?

1 个答案:

答案 0 :(得分:0)

当您使用表单数据(application / x-www-form-urlencoded)时,请使用[FormForm]而不是[FromBody]。