我正在尝试获取 Razor 页面中区域页面的绝对 URI。我正在使用 LinkGenerator 的 GetUriByPage 方法。虽然这适用于不在区域内的页面,但当我尝试在应用程序中获取区域页面的 URI 时,它会返回 null。下面是我正在做的事情的一个例子。
var uri = _linkGenerator.GetUriByPage(HttpContext, "/SomeArea/Tickets/Index", null, new { CurrentFilter = "Open" });
我错过了什么?我没有看到 GetUriByAreaPage 方法。难道根本就做不到吗?
在 https://www.learnrazorpages.com/advanced/areas 有此部分:
如果使用 RedirectToPage 方法将某人转移到某个位置 在一个区域内,您应该使用带有对象的重载 代表指定区域的路线值:
public IActionResult OnGet() { return RedirectToPage("/Create", new { area = "Administration" }); }
我将相同的逻辑应用于 GetUriByPage。下面是我之前的例子,但确实有效。
var uri = _linkGenerator.GetUriByPage(HttpContext, "/Tickets/Index", null, new { Area = "SomeArea", CurrentFilter = "Open" });