Razor Pages Web App(.Net核心2.1)-如何处理从一个区域页面到另一区域页面的重定向

时间:2018-07-27 07:09:26

标签: c# razor-pages asp.net-core-2.1

我刚刚将 Razor Web Pages应用程序从.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中使用任何路由。

感谢您的期待。

1 个答案:

答案 0 :(得分:1)

找到解决方案。

选项1:

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

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

选项2::使用returnUrl。

Areas/Admin/ManageUsers/Index.cshtml中单击“注册用户”链接时,将asp-route-returnUrl发送到“ /帐户/注册”页面。见下文。

<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 似乎更灵活,更合适。

这是我们可以从一个区域页面重定向到另一个 Area 页面的方法。