指定调用Web Api 2 Controller方法的正确路由

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指定调用Web Api 2 Controller方法的正确路由相关的知识,希望对你有一定的参考价值。

我创建了一个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);
    }
答案

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

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

有一个很好的微软article更准确地描述路线。

以上是关于指定调用Web Api 2 Controller方法的正确路由的主要内容,如果未能解决你的问题,请参考以下文章

如何确定我的后台任务将在生产中调用多少个 3rd 方 Web api 调用?

Method not found: then send request web api controller

spring mvc controller实现原理

Controller总结

Web Api 2 Controller 和 Handler 之间有 5 秒的延迟

无法使用javascript向ASP.NET web api Controller发送http POST请求