ASP.NET 核心2:如何带区重定向到页面?
ASP.NET Core 2: how to RedirectToPage with area?
RedirectToPage("Companies")
将重定向到 /Pages/Companies.cshtml
(来自 ASP.NET MVC 控制器)
但是如果想重定向到此页面怎么办 /Areas/MyArea/Pages/Companies.cshtml
?
所有这些和许多其他的都不起作用:
RedirectToPage("/MyArea/Companies.cshtml")
RedirectToPage("MyArea/Companies.cshtml")
RedirectToPage("./MyArea/Companies.cshtml")
RedirectToPage("/MyArea/Companies")
RedirectToPage("MyArea/Companies")
RedirectToPage("./MyArea/Companies")
有时我会收到 "Page not found" 错误。有时得到"Specify a root relative path with a leading '/' to generate a URL outside of a Razor Page"。没有 Pages
文件夹。我知道这一切可以再次改变所有规则。
P.S。使用普通 .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) 配置的 Razor 页面;没有添加特定的路由。
使用overload of RedirectToPage that takes an object representing RouteValues:
return RedirectToPage("/Companies", new { area = "MyArea" });
请注意,如果您在控制器(或 Razor 页面之外的任何地方)中使用 RedirectToPage
,则需要 '/'
。否则它不是必需的(但仍然有效)。
这对我有用:
return RedirectToPage("/Companies", new { area = "MyArea" });
在普通 .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
下工作,没有配置特定的路由。
我觉得这将是一个热门问题...感谢 Mike Bring,他为我指明了一条道路。
P.S。如果您有 Pages 文件夹 - 所有规则将再次更改。这就是 "Razor Pages" 尝试从 "MVC magic"
中 运行 的方式
RedirectToPage("Companies")
将重定向到 /Pages/Companies.cshtml
(来自 ASP.NET MVC 控制器)
但是如果想重定向到此页面怎么办 /Areas/MyArea/Pages/Companies.cshtml
?
所有这些和许多其他的都不起作用:
RedirectToPage("/MyArea/Companies.cshtml")
RedirectToPage("MyArea/Companies.cshtml")
RedirectToPage("./MyArea/Companies.cshtml")
RedirectToPage("/MyArea/Companies")
RedirectToPage("MyArea/Companies")
RedirectToPage("./MyArea/Companies")
有时我会收到 "Page not found" 错误。有时得到"Specify a root relative path with a leading '/' to generate a URL outside of a Razor Page"。没有 Pages
文件夹。我知道这一切可以再次改变所有规则。
P.S。使用普通 .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) 配置的 Razor 页面;没有添加特定的路由。
使用overload of RedirectToPage that takes an object representing RouteValues:
return RedirectToPage("/Companies", new { area = "MyArea" });
请注意,如果您在控制器(或 Razor 页面之外的任何地方)中使用 RedirectToPage
,则需要 '/'
。否则它不是必需的(但仍然有效)。
这对我有用:
return RedirectToPage("/Companies", new { area = "MyArea" });
在普通 .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
下工作,没有配置特定的路由。
我觉得这将是一个热门问题...感谢 Mike Bring,他为我指明了一条道路。
P.S。如果您有 Pages 文件夹 - 所有规则将再次更改。这就是 "Razor Pages" 尝试从 "MVC magic"
中 运行 的方式