WebAPI2 : [删除] 代码中不允许的方法,但在小提琴手中它正在工作



我在Fiddler中测试了我的WebAPI2(删除),它工作正常,但在我的代码中出现了方法不允许的错误。

这是我的代码:

    public async Task<bool> deleteUser(int id)
    {
        string URI = "http://api.danubeco.com/api/userapps";
        using (var client = new HttpClient())
        {   
            var response = await client.DeleteAsync(String.Format("{0}/{1}", URI, id));
            var myobject = await response.Content.ReadAsStringAsync();
            return Convert.ToBoolean(myobject);
        }            
    }

    // DELETE: api/userapps/5        
    [ResponseType(typeof(userapp))]
    public IHttpActionResult Deleteuserapp(int id)
    {
        userapp userapp = db.userapps.Find(id);
        if (userapp == null)
        {
            return NotFound();
        }
        db.userapps.Remove(userapp);
        db.SaveChanges();
        return Ok(userapp);
    }

尝试添加如下内容:

        config.Routes.MapHttpRoute(
            name: "YourControllerApi",
            routeTemplate: "api/{controller}",
            defaults: new { controller = "YourControler", action = "Delete", id = RouteParameter.Optional }
        );

当然,您需要将"YourController"替换为控制器类的名称,并且可能需要调整routeTemplate(这假设您将调用YourURL/api/YourController。

我真的不知道这是否是一个好的做法,但我像这样修改了代码。

    // DELETE: api/userapps/5   
    [HttpGet]
    [Route("api/userapps/deluser/{id}")]
    [ActionName("deluser")]
    [ResponseType(typeof(bool))]
    public bool Deleteuserapp(int id)
    {
        userapp userapp = db.userapps.Find(id);
        if (userapp == null)
        {
            return false;
        }
        db.userapps.Remove(userapp);
        db.SaveChanges();
        return true;
    }

    var response = await client.GetAsync(String.Format("{0}/{1}", URI, 

并使用 GetAsync 而不是 DeleteAsync。

相关内容

  • 没有找到相关文章

最新更新