【发布时间】:2020-01-09 12:34:43
【问题描述】:
确认电子邮件页面包含:
public async Task<IActionResult> OnGetAsync(string userId, string code)
{
if (userId == null || code == null)
{
return RedirectToPage("/Index"); // <----------error
}
var user = await _userManager.FindByIdAsync(userId);
if (user == null)
{
return NotFound($"Unable to load user with ID '{userId}'.");
}
code = Encoding.UTF8.GetString(WebEncoders.Base64UrlDecode(code));
var result = await _userManager.ConfirmEmailAsync(user, code);
StatusMessage = result.Succeeded ? "Thank you for confirming your email." : "Error confirming your email.";
return Page();
}
但是当我测试它的空参数时,它会尝试重定向到页面 return RedirectToPage("/Index");
它会产生异常:
处理请求时发生未处理的异常。 InvalidOperationException:没有名为“/Index”的页面与提供的匹配 价值观
如何重定向到主页?
【问题讨论】:
-
RedirectToPage("/Index")将有效地寻找Pages/Index.cshtml——这样的页面是否存在? -
ConfirmEmailcshtml 页面位于 ...\Areas\Identity\Pages\Account,Index.razor 位于 ...\Pages
-
RedirectToPage()会将 HTTP 重定向到 Razor 页面,而不是 Blazor 页面。Index.razor是 Blazor 组件,可能是您的起始页。在这种情况下,您希望仅重定向到根目录,以便 Blazor 应用程序重新启动并获取其自己的客户端路由。 -
stackoverflow.com/questions/63711424/…你能回答这个问题吗? @ZedZip
标签: asp.net-core razor-pages blazor