不允许使用C#web Api2.0-405方法[put]

不允许使用C#web Api2.0-405方法[put],c#,entity-framework,asp.net-web-api2,C#,Entity Framework,Asp.net Web Api2,我尝试在DB get、post、delete方法中的一个表上制作一个web api,但当我尝试使用Fiddler应用Put方法时,我得到了405方法,这是不允许的 以下是post方法的代码: [HttpPut] public void Put(int UserID, [FromBody] User obj) { var webApi = db.WebApis.Find(UserID); if (webApi != n

我尝试在DB get、post、delete方法中的一个表上制作一个web api,但当我尝试使用Fiddler应用Put方法时,我得到了405方法,这是不允许的

以下是post方法的代码:

[HttpPut]
        public void Put(int UserID, [FromBody] User obj)
        {
            var webApi = db.WebApis.Find(UserID);
            if (webApi != null)
            {
                webApi.Name = obj.Name;
                webApi.address = obj.address;
            }
            db.SaveChanges();
}
webApiConfig文件:

using System.Collections.Generic;
using System.Linq;
using System.Web.Http;

namespace WEbAPi
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services

            // Web API routes
            config.MapHttpAttributeRoutes();
            config.Routes.MapHttpRoute(
                          name: "DatatApi",
                          routeTemplate: "data/{id}",
                          defaults: new { id = RouteParameter.Optional }
                      );
            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }
}

确保在配置文件夹中有以下代码:

  <httpProtocol>
<customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>


确保在配置文件夹中包含以下代码:

  <httpProtocol>
<customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
    <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>


您是否定义了PUT方法,如果是,请发布它。否则,您的问题是您试图在没有PUT方法的情况下调用控制器上的PUT

编辑:
id属性名为
UserID
,但在路由配置中指定的第三段是
id
。将参数更改为
id

您是否定义了PUT方法,如果是,请发布它。否则,您的问题是您试图在没有PUT方法的情况下调用控制器上的PUT

编辑:
id属性名为
UserID
,但在路由配置中指定的第三段是
id
。将您的参数更改为
id

您的PUT操作在哪里?对此表示抱歉,可能是UserId参数有问题。否则,如果看不到客户端代码,我就说不出什么了。您的PUT操作在哪里?很抱歉编辑了。可能是UserId参数有问题。否则,如果没有看到客户端代码,我就说不出什么了。在问题中添加尝试将UserID更改为idYou应该将此标记为答案(如果对您有效)。在问题中添加尝试将UserID更改为idYou应该将此标记为答案(如果对您有效)。