我正在創建一個帶有可選參數的路由的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)導致鏈接正確生成。 –