【发布时间】:2012-10-22 01:24:36
【问题描述】:
假设 ApiController 的动作具有多个参数:
[HttpPost]
public void AddAddress( Person person, Address address, int simple )
或者类似的东西。
现在我尝试发送内容类型为application/json 和json 的发布请求,如下所示:
{
person: {...}, address: {..}, simple: 1
}
假设它是有效的 json ;)
或在这样的 json 数组中:
[person, address, simple]
但 WebApi 无法识别这一点并告诉我它找不到操作,因为它不支持 json 请求中的多个参数。
我正在使用 HttpClient 从 C# 客户端执行此操作,我们希望使用 json 进行发布请求。我想使用 WebApi.Client 包,它为 HttpClient 提供了几个有用的扩展,但是我们有一个可移植的库项目(webapi 客户端不支持)。
我将如何支持此功能?
我尝试使用自定义 ActionFilter,但由于无法事先找到该操作,因此它永远无法运行。我尝试了不知道上下文和参数的 MediaTypeFormatter,还尝试了 ModelBinder,它似乎也只是基于每个参数,并不总是被执行。
谢谢!
【问题讨论】:
标签: c# asp.net json post asp.net-web-api