参数查询不适用于 API Get 方法

Parameter Query is not working for API Get Method

如果我调用带参数查询的 HttpGet 方法,则只调用不带参数的 Get 方法。如何使用参数 id=2

调用第二个 Get 方法
http://localhost:10436/api/testapi?id=2

这是代码

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

    namespace TestApi1
    {
        [Route("api/testapi")]
        [ApiController]
        public class TestApiController : ControllerBase
        {
            public ActionResult Get()
            {
                return Ok("Gets Working");
            }
    
            [HttpGet("{id:int}")]
            public ActionResult Get(int id)
            {
                return Ok("Gets Working with ID");
            }
        }
    }
       [HttpGet("{id}")]
        public async Task<ActionResult> Get (int id)
        {
           //clarify code
        }

并发送此请求http://localhost:10436/api/testapi?id=2

您的代码可以工作。由于您的 id 大写和我认为的小写事实,您的代码不起作用。

更新

[HttpGet("idName/{id}")]

发送此请求http://localhost:10436/api/testapi/idName?id=2

另一个进程

   [HttpGet("{id}", Name = "Get")]
   public async Task<ActionResult> Get (int id)
        {
           //clarify code
        }


并发送这个请求http://localhost:10436/api/testapi?id=2

另一个过程

   [HttpGet("{id}", Name = "GetById")]
   public async Task<ActionResult> GetById (int id)
        {
           //clarify code
        }


并发送这个请求http://localhost:10436/api/testapi?id=2

所有路由均使用 VS 2019 和 Postman 进行了测试。他们工作正常

如果你想使用

http://localhost:10436/api/testapi?id=2

改变你的行动

 public ActionResult GetById([FromQuery] int id)
{
   return Ok("Gets Working with ID");
}

但如果您想使用已有的操作,请使用此 url

http://localhost:10436/api/testapi/2