我可以通过 /api/set/id 或 /api/set/archived/ GET 很好,但 PUT 不起作用。我的路线:
routes.MapHttpRoute(
name: "SetId",
routeTemplate: "api/set/{id}",
defaults: new { controller = "Set", action = "getset" }
);
routes.MapHttpRoute(
name: "Set",
routeTemplate: "api/set/{action}/{id}",
defaults: new { controller = "Set", id = RouteParameter.Optional }
);
设置控制器:
[HttpPut]
[AcceptVerbs("PUT")]
[ActionName("update")]
public HttpResponseMessage PutSet(Set set)
{
...
}
在提琴手中,我将来自相应 GET 请求的原始对象放入:
http://localhost:24144/api/set/update
但我明白了
"{"$id":"1","Message":"请求的资源不支持http方法'PUT'。"}"
为什么 PUT 不起作用?
编辑:我还尝试更新第一个路由以将 id 作为可选,并删除 PUT 方法上的操作名称。然后我尝试通过 PUT /api/set 访问,我得到相同的 405 错误 - PUT 不受支持。