如何使用RedirectToPage导航到另一个区域的页面

问题描述 投票:0回答:1

RedirectToPage("Companies")
将重定向到
/Pages/Companies.cshtml
(从 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") 

有时我会收到“找不到页面”错误。有时我会收到消息“指定带有前导‘/’的根相对路径以在 Razor 页面外部生成 URL”。没有

Pages
文件夹。我知道这一切可以再次改变所有规则。

我的 Razor 页面配置为

.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
...未添加特定路由。

asp.net-core razor-pages asp.net-mvc-areas
1个回答
29
投票

使用 RedirectToPage 的 重载,它采用表示 RouteValues 的对象:

return RedirectToPage("/Companies", new { area = "MyArea" });

请注意,如果您在控制器(或 Razor 页面之外的任何地方)中使用

'/'
,则需要
RedirectToPage
。否则不需要(但仍然有效)。

© www.soinside.com 2019 - 2024. All rights reserved.