Skip to main content
 首页 » 编程设计

c#之.net core 中的 Web API 请求查询参数值为空

2024年02月25日32Leo_wl

我在新的 .NET CORE 应用程序中有一个 REST API Controller 。如果我调用以下电话: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; } 
 
    } 

请您参考如下方法:

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