繁体   English   中英

Rest API 未在控制器上找到任何操作

[英]Rest API No action was found on the controller

我打电话给你的经验来帮助我解决一个问题。 我有这个代码:

public class FanController : ApiController
{

    [ActionName("ImportAwb")]
    [HttpPost]
    public async Task<object> ImportAwb([FromBody]JObject data) 
    {
        try
        {
            string username = data["username"].ToString();
            string clientId = data["clientId"].ToString();
            string userPass = data["userPass"].ToString();
            string fisier = data["fisier"].ToString();

            var responseString = await FanCourier.ImportAwbIntegrat(username, clientId, userPass, fisier);
            return Ok(responseString);
        }
        catch (Exception ex)
        {
            return (ex);
        }
    }

如果我只留下一个这样的方法,我可以毫无问题地从 Postman 调用它,但是如果我尝试制作另一个方法,如下所示:

{

public class FanController : ApiController
{

    [ActionName("ImportAwb")]
    [HttpPost]
    public async Task<object> ImportAwb([FromBody]JObject data) 
    {
        try
        {
            string username = data["username"].ToString();
            string clientId = data["clientId"].ToString();
            string userPass = data["userPass"].ToString();
            string fisier = data["fisier"].ToString();

            var responseString = await FanCourier.ImportAwbIntegrat(username, clientId, userPass, fisier);
            return Ok(responseString);
        }
        catch (Exception ex)
        {
            return (ex);
        }
    }


    [ActionName("PrintareAwbHtml")]
    [HttpPost]
    public async Task<object> PrintareAwbHtml([FromBody]FanCourier fanCourier)
    {
        try
        {
            var responseString =
                await fanCourier.PrintareAwbHtml(fanCourier);
            return Ok(responseString);
        }
        catch (Exception ex)
        {
            return (ex);
        }

    }

邮递员电话的回复是:

"Multiple actions were found that match the request: \r\nImportAwb on type Courier.Rest.Controllers.FanController\r\nPrintareAwbHtml on type Courier.Rest.Controllers.FanController"

我试图在public class FanController : ApiController之前添加一个[Route("api/[controller]")]并且错误更改为:

No action was found on the controller 'Fan' that matches the request.

我试图在互联网上找到一些东西,但我发现没有任何帮助我的情况。

您应该为每个操作定义路由,以便您知道在调用特定 API 时将调用哪个。

使用[Route]标签来完成

    [ActionName("ImportAwb")]
    [HttpPost]
    [Route("Action1")]
    public async Task<object> ImportAwb([FromBody]JObject data) 
    {
...

从邮递员那里,使用 url 调用您的端点。 http://yoururl.com/Action1

(YourUrl 将是您为此控制器设置的路径...可能包括 /api 或您可能已配置的内容。将 /Action1 添加到该 url 的末尾)

只要方法不同(post、get、delete、patch 等),您就可以有多个到同一个 URL 的路由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM