我正在创建一个带有可选参数的路由的ASP.NET Core WebAPI。在返回结果中,我嵌入到“上一页”和“下一页”页面的链接。我使用Url.Link()来生成这些链接,但创建的链接不会生成正确的URL。Url.Link()没有与查询字符串生成正确的链接
示例代码:
[HttpGet("{page:int?}", Name = "GetResultsRoute")]
public IActionResult GetResults([FromQuery]int page = 0)
{
...
var prevUrl = Url.Link("GetResultsRoute", new { page = page - 1 });
var nextUrl = Url.Link("GetResultsRoute", new { page = page + 1 });
...
产生的将是这样的网址:
“http://localhost:65061/api/results/1”
我要的是:
“http://localhost:65061/api/results?page=1”
什么我在这里做错了吗?
就是这样,我需要删除页面有一个路由约束。 [HttpGet(Name =“GetResultsRoute”)] public IActionResult GetResults([FromQuery] int page = 0)导致链接正确生成。 –