我将两个复杂的参数传递给Web Api Post方法并获取错误“无法绑定多个参数”。我正在使用fiddler测试它并使用composer发送JSON字符串。
这是我的JSON字符串。
{"agentEntity":[{"AgentID":"1","ClientID":"1"}],"userEntity":[{"ClientID":"1","UserID":"1"}]}
我已经在JSONLint.com上验证了这个字符串,它说好了。
当我使用一个参数编写POST方法并传递给字符串时,它可以正常工作。
{"agentEntity":[{"AgentID":"1","ClientID":"1"}]}
My Web api Post方法。
public OperationStatus Post(AgentEntity agentEntity, UserEntity userEntity)
{...
}
请帮忙。
答案 0 :(得分:2)
Web API不处理多个发布的内容值,您只能将单个内容值发布到Web API Action方法。您可以阅读here参数绑定的工作原理。
但是,有一些解决方法:
创建一个包含要传递的所有参数的模型,例如命名为PostRequest
public OperationStatus Post(PostRequest request)
{
...
}
JObject
由于asp.net Web Api现在使用JSON.NET作为它的JSON序列化程序,所以你可以使用JObject
类接收&解析动态JSON结果
public OperationStatus Post(JObject data)
{
...
}
您可以使用 .Get()或 .GetValues()方法(对于多选值)手动定义FormDataCollection类型参数并逐个读取参数。 / p>
public OperationStatus Post(FormDataCollection data)
{
...
}