如何在Web API PUT中传递对象?

时间:2013-06-07 17:39:51

标签: c# asp.net asp.net-mvc put

我是ASP.NET MVC的新手,这是我第一次使用API​​。

我正在尝试做一个PUT,给定一个对象。但是,在启动应用程序并查看可用的API之后,它会显示我的PUT URL,如下所示,没有任何参数选项。

/api/File

不应该是/api/File/{}吗?

控制器

[HttpPut]
public void PutFile (FileData file)
{
  ...
}

如果我这样做完全错了,请告诉我!

2 个答案:

答案 0 :(得分:0)

该URL是正确的,因为您发送的对象应该使用正确的内容类型在请求正文中传递....如果您要上传文件,可能是multipart / form-data。如果FileData不是文件而只是一个复杂的对象,那么你可以使用application / x-www-form-urlencoded用于表单或者application / json用于AJAX。

答案 1 :(得分:0)

tforester答案是正确的,但只是添加。您需要使用FromBodyAttribute告诉webapi非原始对象(例如FileData)是预期的,并且它位于传入请求的正文中。 e.g。

[HttpPut]
public void PutFile ([FromBody]FileData file)
{
  ...
}