找不到Web API路由404

时间:2019-06-14 15:18:32

标签: javascript c# jquery asp.net asp.net-web-api-routing

我对ASP.Net Web API进行了调用,该API返回404 Not found。控制器已识别,但未找到操作。

我尝试使用属性路由和[HttpGet]进行操作。我还尝试过在WebAPI配置文件中使用标准API路由。我什至尝试将两者结合。

//[HttpGet]
//[Route("api/User")]
protected IHttpActionResult GetEmployeeHierarchyList()
{
  // ...
  return Json(results);
}
config.Routes.MapHttpRoute(
  name: "GetEmployeeHierarchyListTwo",
  routeTemplate: "api/{controller}/{action}",
  defaults: new { action = "GetEmployeeHierarchyList", }
);
return fetch("/api/User/" + api, {
  method: "GET",
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'credentials': 'include'
  }
}).then(response => {
  return response.json();
})

我希望该操作返回由提取调用处理的字符串。

2 个答案:

答案 0 :(得分:3)

将您的GetEmployeeHierarchyList()方法公开到控制器中。

答案 1 :(得分:0)

这应该可以正常工作:

    [HttpGet]
    [Route("api/User")]
    public IHttpActionResult GetEmployeeHierarchyList()
    {
      // ...
      return Json(results);
    }