在C#中调用HttpPut和HttpDelete时发生错误WebAPI

问题描述:

我有一个WebAPI 2控制器。非常简单,很简单:在C#中调用HttpPut和HttpDelete时发生错误WebAPI

public class ValuesController : ApiController 
{ 
    // GET api/values 
    public IEnumerable<string> Get() 
    { 
     return new string[] { "value1", "value2" }; 
    } 

    // GET api/values/5 
    public string Get(int id) 
    { 
     return "value"; 
    } 

    // POST api/values 
    public void Post([FromBody]string value) 
    { 
    } 

    // PUT api/values/5 
    public void Put(int id, string value) 
    { 
    } 

    // DELETE api/values/5 
    public void Delete(int id) 
    { 
    } 
} 

Get和Post方法很好。但删除和放置不起作用。而出现此错误:

HTTP错误404.0 - 找不到 您正在寻找已被删除的资源,有其名称更改,或者暂时不可用。

*在IIS Express中,所有方法都能正常工作。但不在IIS本地 任何想法为什么会发生? 在此先感谢

从哪里发送请求到这种方法?从AJAX请求? GET(带ID)PUT和DELETE具有相同的路由URL。如果您通过AJAX调用,则必须指定动词。否则,应用程序会在GET,PUT和DELETE之间产生混淆。

+0

我的客户正在从他的Android应用调用我的API。他指定了动词。我也从邮差中检查过。同样的结果。 –

+1

我已经试过了你从邮递员的确切代码,它正在工作。您是否尝试使用put参数作为查询字符串,如下所示:http:// localhost:62454/api/values/5?value = str – Tanjeer

+0

这正是我在做的: http:// localhost/pinstogram/api/PUT方法中的值/ 5 –