RedirectToPage("Companies")将重定向到/Pages/Companies.cshtml(从ASP.NET MVC Controller )

但是,如果要重定向到此页面/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文件夹。我知道所有这些都可以再次更改所有规则。

P.S.用普通的.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)配置的 Razor 页面;没有添加特定的路由。

最佳答案

使用overload of RedirectToPage that takes an object representing RouteValues:

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

请注意,如果您在 Controller (或Razor Page之外的任何地方)中使用'/',则RedirectToPage是必需的。否则,它不是必需的(但仍然可以使用)。

关于asp.net-mvc - ASP.NET Core 2 : how to RedirectToPage with area?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52107626/

10-12 22:58