如何重定向到主页?



确认电子邮件页面包含:

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();
}

但是当我测试它的空参数时,它会尝试重定向到页面 返回重定向到页面("/索引"(;

它会生成异常:

处理

请求时发生未处理的异常。 无效操作异常:没有名为"/Index"的页面与提供的页面匹配 值

如何重定向到主页?

如果页面位于不同的文件夹中,则以这种方式工作

return Redirect("~/");

RedirectToPage()返回一个IActionResult,该通过提供Razor 页面的路径将 HTTP 重定向到指定的路由。Razor 页面是Pages文件夹中的.cshtml文件。

如果使用的是 Blazor,则可能使用的是它附带的客户端路由器。在这种情况下,只有一个 Razor 页面_Host.cshtml它将充当 Blazor 应用程序的主要入口点。

因此,您可以做的是重定向到/_Host尽管我不建议这样做。相反,只是重定向到应用程序根目录,而不询问服务器端端点路由器路由是什么,可能是最好的主意:

return LocalRedirect("/");

Blazor中,您应该使用Microsoft.AspNetCore.Components.NavigationManager.

@inject NavigationManager NavigationManager
if (userId == null || code == null)
{
NavigationManager.NavigateTo("/Index"); // <----------error
}

相关内容

  • 没有找到相关文章

最新更新