API 在一种型号上支持删除,但在另一种型号上不支持
API Supports DELETE on one model, but not another
我已经为两个对象构建了 DELETE 方法。目前,用户对象可以接受 DELETE 请求并且工作正常,但是请求对象给我以下消息:
{
"Message": "The requested resource does not support http method 'DELETE'."
}
用户代码和调用是:
// DELETE: api/Users/5
[Route("{id}"), ResponseType(typeof(User))]
public IHttpActionResult DeleteUser(string id)
{
User user = db.Users.Find(id);
if (user == null)
{
return NotFound();
}
db.Users.Remove(user);
db.SaveChanges();
return Ok(user);
}
http://localhost:8080/api/users/2
content-type: application/json
DELETE
请求代码和调用如下:
// DELETE: api/ServiceRequests/5
[Route("{id}:int"), ResponseType(typeof(ServiceRequest))]
public IHttpActionResult DeleteServiceRequest(int id)
{
ServiceRequest serviceRequest = db.ServiceRequests.Find(id);
if (serviceRequest == null)
{
return NotFound();
}
db.ServiceRequests.Remove(serviceRequest);
db.SaveChanges();
return Ok(serviceRequest);
}
http://localhost:8080/api/servicerequests/2
content-type: application/json
DELETE
奇怪的是,如果我将 Route("{id}:int")
更改为 Route("{id}")
,它运行良好,但消除了我的整数约束。
如何允许对服务请求的 DELETE 访问?
路由属性语法错误,应该是:
[Route("{id:int}"), ResponseType(typeof(ServiceRequest))]
路由约束应该在{}
内
我已经为两个对象构建了 DELETE 方法。目前,用户对象可以接受 DELETE 请求并且工作正常,但是请求对象给我以下消息:
{
"Message": "The requested resource does not support http method 'DELETE'."
}
用户代码和调用是:
// DELETE: api/Users/5
[Route("{id}"), ResponseType(typeof(User))]
public IHttpActionResult DeleteUser(string id)
{
User user = db.Users.Find(id);
if (user == null)
{
return NotFound();
}
db.Users.Remove(user);
db.SaveChanges();
return Ok(user);
}
http://localhost:8080/api/users/2
content-type: application/json
DELETE
请求代码和调用如下:
// DELETE: api/ServiceRequests/5
[Route("{id}:int"), ResponseType(typeof(ServiceRequest))]
public IHttpActionResult DeleteServiceRequest(int id)
{
ServiceRequest serviceRequest = db.ServiceRequests.Find(id);
if (serviceRequest == null)
{
return NotFound();
}
db.ServiceRequests.Remove(serviceRequest);
db.SaveChanges();
return Ok(serviceRequest);
}
http://localhost:8080/api/servicerequests/2
content-type: application/json
DELETE
奇怪的是,如果我将 Route("{id}:int")
更改为 Route("{id}")
,它运行良好,但消除了我的整数约束。
如何允许对服务请求的 DELETE 访问?
路由属性语法错误,应该是:
[Route("{id:int}"), ResponseType(typeof(ServiceRequest))]
路由约束应该在{}