首页 > 解决方案 > Asp.net core 2.2 api路由

问题描述

在 asp.net core 2.2 我有测试 api 控制器类,我有 2 获取方法:

[Route("api/[controller]")]
[ApiController]
public class testController : Controller
{
    // GET: api/test
    [HttpGet]
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/test/5
    [HttpGet("{id}")]
    public string Get(int id)
    {
       
        return "value";
    }
   ....
}

如何使用这条路线api/test?id=1通过 id 获取方法?

标签: apiasp.net-coreroutes

解决方案


如何使用这条路线 api/test?id=1 通过 id 获取方法?

使用Route Attribute.

应用于以/~/不与应用于控制器的路由模板组合的操作的路由模板。

[FromQuery] - 从查询字符串中获取值。

[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{

    //test url:   /api/test?id=7 
    [HttpGet("/api/test")]  // will ignore "api/[controller]" with "/"
    public int Test([FromQuery]int id)
    {
        return id;
    }

    .....
}

.Net Core 2.2 API 中的结果测试

在此处输入图像描述


推荐阅读