我刚刚将 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
中使用任何路由。
感谢您的期待。
答案 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 页面的方法。