我在新的 .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 以外的其他名称,但在这种情况下您将需要根据更改您的请求查询字符串。
