我尝试在数据库get,post,delete方法的桌子上制作一个web api,但是当我尝试应用 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 }
);
}
}
}
答案 0 :(得分:3)
您是否定义了PUT方法,如果是,请发布。否则,您的问题是您在没有PUT方法的情况下尝试在控制器上调用PUT
编辑:
您的ID属性名为UserID
,但在您的路线配置中,您指定第三个分段为id
。将您的参数更改为id
答案 1 :(得分:0)