首页 > 解决方案 > Razor Pages Web App (.Net core 2.1) - 如何处理从一个区域页面到另一个区域页面的重定向

问题描述

我刚刚将我的Razor Web Pages Application从 .net core 2.0 更新到 .net core 2.1 并重新组织了我的代码以使用Areas

我的问题是

如何从页面重定向

Areas/Identity/Account/Register.cshtml 

Areas/Admin/ManageUsers/Index.cshmtl

在 .net core 2.0 的早期,我只是在使用RedirectToPage("/ManageUsers/Index"),因为我的所有代码都在默认Pages目录下。

注意:我没有在startup.cs.

感谢期待。

标签: c#razor-pagesasp.net-core-2.1

解决方案


刚刚找到解决方案。

选项 1:。

Areas/Identity/Account/Register.cshtml,在 OnPostAsync() 中使用以下 url

string url = Url.Page("/ManageUsers/Index", new { area = "Admin" });
LocalRedirect(url);

选项 2:使用 returnUrl。

点击“注册用户”链接Areas/Admin/ManageUsers/Index.cshtml 发送asp-route-returnUrl到“/Account/Register”页面。见下文。

<a asp-area="Identity" asp-page="/Account/Register" asp-route-returnUrl="@Url.Page("/ManageUsers/Index", new { area = "Administration" })">Register New User</a>
LocalRedirect(url);

选项 2似乎更灵活和合适。

这就是我们如何从一个区域页面重定向到另一个区域页面的方式。


推荐阅读