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);
...未添加特定路由。
使用 RedirectToPage 的 重载,它采用表示 RouteValues 的对象:
return RedirectToPage("/Companies", new { area = "MyArea" });
请注意,如果您在控制器(或 Razor 页面之外的任何地方)中使用
'/'
,则需要 RedirectToPage
。否则不需要(但仍然有效)。