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

时间:2017-08-28 08:56:07

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

我有一个WebAPI 2控制器。非常简单,非常简单:

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 Local中 知道为什么会这样吗? 提前致谢

1 个答案:

答案 0 :(得分:1)

从您向此方法发送请求的位置?从AJAX请求? GET(带id)PUT和DELETE具有相同的路由URL。如果您通过AJAX调用,则必须指定动词。否则应用程序会在GET,PUT和DELETE之间混淆。