【问题标题】:C# web Api2.0 - 405 Method Not Allowed [put]C# web Api2.0 - 405 Method Not Allowed [put]
【发布时间】:2018-06-29 00:00:00
【问题描述】:

我尝试在 DB 中的表上创建一个 web api get、post、delete 方法工作正常,但我在尝试应用 Put 方法时得到 405 Method Not Allowed通过使用 Fiddler

这里是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 操作在哪里?
  • 抱歉编辑了
  • UserId 参数可能是个问题。否则,如果没有看到一些客户端代码,我就无能为力了。

标签: c# entity-framework asp.net-web-api2


【解决方案1】:

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

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

【讨论】:

  • 添加到问题中
  • 尝试将 UserID 更改为 id
  • 如果对您有用,您应该将其标记为答案。
【解决方案2】:

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

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

这是一篇非常好的文章,它解释了如何解决您的问题 Troubleshooting 405 Error

【讨论】:

    猜你喜欢
    • 2015-07-29
    • 2013-10-10
    • 2014-09-03
    • 2014-04-09
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    相关资源
    最近更新 更多