如何查询绑定参数?

How to query bind parameter?

我正在尝试查询绑定参数 id。它一直以 0 的形式出现。 s2 提供时有一个值:

id=0, s=null
http://localhost/api/values/123

id=0, s2=true
http://localhost/api/values/123?s2=true

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("sub/{id?}")] 
    public string Get([FromQuery]int id, string s2)
    {
        return "value";
    }

为什么 id 没有被捕获?

更改您的代码以使用 FromRoute 作为 Id,因为它是通过路由到达的,并更改 Http Get,它与您传入的内容不一致 url

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet()] 
    public string Get([FromRoute]int id, [FromQuery]string s2)
    {
        return "value";
    }
}

你的代码应该是这样的

[Route("api/[controller]")]
public class ValuesController : Controller
{
    [HttpGet("sub/{id?}")] 
    public string Get(int? id, string s2)
    {
        return "value";
    }
}