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/