我是 ASP.NET MVC 的新手,这是我第一次使用 API。
给定一个对象,我正在尝试做一个 PUT。但是,在启动应用程序并查看可用的 API 后,它显示我的 PUT URL 如下,没有任何参数选项。
/api/File
不应该是这样的/api/File/{}
吗?
控制器
[HttpPut]
public void PutFile (FileData file)
{
...
}
如果我这样做完全错误,请告诉我!
我是 ASP.NET MVC 的新手,这是我第一次使用 API。
给定一个对象,我正在尝试做一个 PUT。但是,在启动应用程序并查看可用的 API 后,它显示我的 PUT URL 如下,没有任何参数选项。
/api/File
不应该是这样的/api/File/{}
吗?
控制器
[HttpPut]
public void PutFile (FileData file)
{
...
}
如果我这样做完全错误,请告诉我!
该 URL 是正确的,因为您发送的对象应该以正确的内容类型在请求正文中传递....如果您正在上传文件,可能是 multipart/form-data。如果FileData
不是一个文件而只是一个复杂的对象,那么您可以使用 application/x-www-form-urlencoded 用于表单或 application/json 用于 AJAX。
tforester 的答案是正确的,但只是补充。您需要使用FromBodyAttribute告诉 webapi 非原始对象(例如 FileData)是预期的,并且它位于传入请求的正文中。例如
[HttpPut]
public void PutFile ([FromBody]FileData file)
{
...
}