.netcore中的WebAPI请求查询参数值为null

时间:2019-06-09 00:54:17

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

我在新的.NET CORE应用中有一个REST API控制器。如果我进行以下调用:https://localhost/api/search?query=someText,则可以执行以下代码,因此路由似乎正确,但是query.query始终为null。我希望该值为“ someText”。

这是怎么了?

[HttpGet]
public IActionResult Get([FromQuery]SearchQuery query)
{
} 

public class SearchQuery
    {
        [FromQuery(Name = "query")]
        public string query { get; set; }

    }

1 个答案:

答案 0 :(得分:3)

问题在于您的参数名称发生冲突,导致模棱两可,因为它们全为query

如果您具有这样的功能,它将起作用:

[HttpGet]
public IActionResult Get([FromQuery]SearchQuery queryParam)
{
  // here you can use queryParam.query
} 

public class SearchQuery
{
    [FromQuery(Name = "query")]
    public string query { get; set; }

}

您还可以使其将参数[FromQuery(Name = "query")]的名称更改为query以外的名称,但是在这种情况下,您将需要根据以下内容更改请求查询字符串。