[英]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.