尝试使用从URL接收的3个参数制作控制器

时间:2019-04-09 07:32:28

标签: c# asp.net .net rest web-services

我正在尝试制作一个可以接收3个参数的控制器。 URL中提供了这3个参数。

import QtQuick 2.9
import QtQuick.Window 2.2
import FooModule 1.0 as U
Window {
    visible: true
    width: 640
    height: 480
    title: qsTr("Hello World")
    U.Shortcuts{
        U.Shortcut{

        }
        U.Shortcut{

        }
    }
}

当我使用GET调用邮递员的邮递员时:[HttpGet] public IHttpActionResult GetCompared(string TeamProject, string Project, string branch) { return Ok(_BranchesCompareService.BrancheCompare(TeamProject, Project, branch)); }

我收到了如下消息:

  

找不到与请求的URI'http://localhost:11860/api/Compare/GetCompared?TeamProject=Airports&Project=Vueling.BlackListPassenger&brancheToCompare=Develop'相匹配的HTTP资源。
  在“比较”控制器上找不到与请求匹配的操作。

有什么主意吗?谢谢你!

3 个答案:

答案 0 :(得分:0)

您需要添加一个路由标签。尝试这样的事情:

[HttpGet]
[Route("api/Compare/GetCompared")]
public IHttpActionResult GetCompared(string TeamProject, string Project, string branch)
{
      return Ok(_BranchesCompareService.BrancheCompare(TeamProject, Project, branch));
}

答案 1 :(得分:0)

将FromQuery属性添加到参数:

    [HttpGet]
    public IHttpActionResult GetCompared([FromQuery]string TeamProject, [FromQuery]string Project, [FromQuery]string branch)
    {
        return Ok();
    }

答案 2 :(得分:0)

您需要将FromQuery属性添加到控制器参数。

//  /[controller]/compare?TeamProject=xxxxx&&Project=xxxxxx&&branch=xxxxx
[HttpGet("compare")]
public IHttpActionResult GetCompared([FromQuery]string TeamProject, FromQuery]string roject, [FromQuery]string branch)
{
    return Ok(_BranchesCompareService.BrancheCompare(TeamProject, Project, branch));
}