c# - LinkGenerator GetPathByPage 对于区域页面返回 null

标签 c# asp.net-core razor-pages asp.net-core-razor-pages

我正在尝试获取 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有这个部分。

If using the RedirectToPage method to transfer someone to a location within an area, you should use the overload that takes an object representing route values to specify the area:

public IActionResult OnGet() 
{ 
    return RedirectToPage("/Create", new { area = "Administration" }); 
}

我将相同的逻辑应用于 GetUriByPage。下面是我之前的示例,但确实有效。

var uri = _linkGenerator.GetUriByPage(HttpContext, "/Tickets/Index", null, new { Area = "SomeArea", CurrentFilter = "Open" });

关于c# - LinkGenerator GetPathByPage 对于区域页面返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71575024/

相关文章:

c# - 如果变量为空,赋值操作什么也不做?

c# - LINQ 选择不同的项目和子项目

asp.net - 在project.json中用 "bin"包装多个DLL的语法是什么

c# - .Net 5 Windows 和自定义身份验证

c# - 如何检测 Razor 页面中的回发?

asp.net-core - ASP 核心 : how to route to API Controller that is located in the area folder?

c# - 在 ASP.Net c# 中执行多个读取器

c# - 如何在 MongoDB 中创建 "trigger"

c# - .net 核心中的 IHttpClientFactory

visual-studio - 在 ASP.NET5 项目中编译 TypeScript 项目