无需自定义路线即可呼叫Api

本文关键字:呼叫 Api 自定义路 | 更新日期: 2023-09-27 18:24:49

我可以用自定义路由调用Api。(url:"api/WorkItem/1/GetOne")

  [HttpGet]
    [Route("api/WorkItem/{id}/GetOne")]
    public async Task<IEnumerable<WorkItemDto>> GetOne(int id)
    {
          //...
    }

但我不能调用相同的api,若我删除自定义路由:

这是我的路线定义:

 config.Routes.MapHttpRoute(
                      name: "DefaultApi",
                      routeTemplate: "api/{controller}/{id}/{action}",
                      defaults: new { action = RouteParameter.Optional, id = RouteParameter.Optional }
                );

我希望这能在没有自定义路线的情况下工作,但事实并非如此。我得到404 NotFound。我做错了什么?

无需自定义路线即可呼叫Api

绘制两次路线图。第一次有动作,第二次没有

config.Routes.MapHttpRoute(
                         name: "WithAction",
                         routeTemplate: "api/{controller}/{id}/{action}"
                         );
config.Routes.MapHttpRoute(
                          name: "DefaultId",
                          routeTemplate: "api/{controller}/{id}",
                          defaults: new { id = RouteParameter.Optional }
                          );