WebApi控制器中有多少删除或放置方法?

时间:2016-12-26 13:29:46

标签: c# asp.net rest asp.net-web-api

我遇到ASP.NET WebAPI问题。我想保留RESTful API,所以我在一个控制器中创建了一些api,例如:

  • 获取/api/user/ - userslist
  • 获取/api/user/{id} - 用户
  • 获取/api/user/{id}/books - 获取用户的所有图书
  • 删除/api/user/{id} - 删除用户
  • 删除/api/user/{id}/books - 删除用户'书籍

所有Get方法都可以正常工作,但只有一个Delete方法可以正常工作,当另一个方法被调用时,它会得到405个响应。你可以帮帮我吗 ?

感谢。这是我的控制器

[RoutePrefix("api/Car")]//AttributeRouting asp.net 4.0 (not 5.0)
public class CarController : ApiController
{
    public CarInfoPagedList GetCarInfos(int page = 0, int limit = 10)
    {  
        var list = new CarInfoPagedList();
        return list;
    }

    [HttpRoute("{id}")]
    public string GetCarById(string id, string time = " ") 
    {
        return "some";
    }


    [HttpRoute("{id}/runtime")]
    public CarState GetCarRuntime(string id) {
        return new CarState(id);
    }

    [DELETE("{id}")]//405
    public void DeleteCar(string id)
    {
        //TODO:remove car
    }

    [DELETE("{id}/terminal/{terminalId}")]//work fine
    public void Delete(string id, string terminalId) 
    {
    }

    [PUT("{id}/")]//405
    public void PutCar(string id, CarInfo car)
    {
    }

    [PUT("{id}/terminal/{terminalId}")]//work fine
    public void Put(string id, string terminalID) 
    {
    }
}

0 个答案:

没有答案