【发布时间】:2021-12-09 13:46:52
【问题描述】:
我的路线配置正确,因为我已经在其他问题中看到了它。
Web API 使用MapHttpRoute,它使用System.Web.Http。我用[System.Web.Http.HttpPost] 装饰了我的操作,但它似乎不起作用,它返回错误消息:
请求的资源不支持http方法'GET'
我尝试了这个解决方案[System.Web.Http.AcceptVerbs("GET", "POST")],正如我在同一个问题上看到的那样。 The requested resource does not support HTTP method 'GET' 并且成功了。
动作的METHOD是GET,应该是POST。
也许我遗漏了一些不应该或应该在我正在使用的操作上实施的内容。
这是我在控制器中的代码。
[HttpPost, Route("DestroySession/{userID}", Name = "DestroySession"), AcceptVerbs("GET" , "POST")]
public async Task<IHttpActionResult> DestroyUserSession(string userID)
{
SystemResult systemResult = new SystemResult();
await Task.Run(() => {
IAbstractLogic<UserInput, SystemResult> systemProcess = new LogoutLogic();
UserInput userInput = new UserInput
{
UserID = userID
};
systemResult = systemProcess.doProcess(userInput);
}).ConfigureAwait(false);
return Content(HttpStatusCode.OK, new
{
message = systemResult.ResultMessage, status = systemResult.ResultCode == 0
});
}
这是我的WebApiConfig
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
任何帮助将不胜感激。问候
【问题讨论】:
标签: c# asp.net-web-api