繁体   English   中英

C#web Api2.0-405方法不允许[输入]

[英]C# web Api2.0 - 405 Method Not Allowed [put]

我尝试使数据库中的表上的Web api可以正常使用get,post,delete方法,但是当尝试使用Fiddler应用Put方法时,我得到405 Method Not Allowed

这是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 }
            );
        }
    }
}

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

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

确保在您的配置文件夹中,您具有以下代码:

  <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>

这是一篇很好的文章,解释了如何解决您的问题疑难解答405错误

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM