我的工作我的控制器補丁的方法,但我不斷收到錯誤C#所請求的資源不支持HTTP方法補丁
所請求的資源不支持HTTP方法補丁
RouteConfig的.cs
// GET http://localhost:28888/v1/panels/
// PATCH http://localhost:28888/v1/panels/1
routes.MapHttpRoute(
name: "Panel",
routeTemplate: "v1/panels/{id}",
defaults: new { controller = "Panel",
id = RouteParameter.Optional,
},
constraints: null,
handler: handler
);
PanelController.cs
[HttpPatch]
public HttpResponseMessage Patch(int panelId)
{
if (panelId <= 0)
{
throw new ArgumentNullException(nameof(panelId), "Can't be less or equal 0.");
}
panelTasks.SetPanelModified(panelId);
return Request.CreateResponse(HttpStatusCode.NoContent);
}
補丁方法實際上是允許的。在Global.asax下面是代碼行
Context.Response.AddHeader("Access-Control-Allow-Methods", "GET,POST,PUT,PATCH,DELETE,OPTIONS");
Context.Response.AddHeader("Access-Control-Allow-Credentials", "true");
我正在測試郵遞員的URL。網址是localhost:28888/v1/panels/2902901
?您使用的是舊版.net還是.net內核? –
傳統.net。仍然使用System.Web – pandemic
如果您希望它自動正確映射路由,參數名稱需要匹配。它不會自動將'id'映射到'panelId' –