指定适当的路由来调用WebApi 2 Controller方法

时间:2018-08-20 13:02:25

标签: c# asp.net-web-api postman

我创建了一个PublicController.cs,它将返回代理列表。然后,我构建并运行该项目,并打开Postman更改模式以获取并调用http://localhost:50159/api/public/Agents我收到的消息是

{
    "Message": "No HTTP resource was found that matches the request URI 'http://localhost:50159/api/public/Agents'.",
    "MessageDetail": "No action was found on the controller 'Public' that matches the request."
}

有什么我想念的吗?

    [HttpGet]
    public IHttpActionResult Agents(string key, string diseaseId)
    {
        GuardKey(key);

        var result = AgentsDataService.GetAgents();



        return Json(result);
    }

1 个答案:

答案 0 :(得分:0)

默认情况下,WebApi 2控制器的名称是按约定注册的,即PublicController在运行时为我们/api/Public

您尝试访问api/public/Agents,但是您的控制器可能位于api/Public。 您需要在RouteConfig.cs中指定 Route 或将Route用作方法的属性。

有一个很好的Microsoft article,可以更精确地描述路由。