【问题标题】:WebAPI request query parameter values are null in .netcoreWeb API 请求查询参数值在 .net 核心中为空
【发布时间】:2019-06-09 00:54:17
【问题描述】:

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

这里有什么问题?

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

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

    }

【问题讨论】:

  • 请尝试将 Get 操作方法中的参数名称从 SearchQuery query 更改为 SearchQuery model 以避免与模型中的属性名称产生歧义。

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


【解决方案1】:

问题是您的参数名称冲突导致歧义,因为它们都是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 以外的其他名称,但在这种情况下,您需要相应地更改您的请求查询字符串。

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 2023-03-20
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    相关资源
    最近更新 更多