在服务器端 Blazor 中,如何从 Blazor 组件(.razor)重定向到 .cshtml 登录页面?
Login.cshtml(位于 ProjectRoot/Identity/Login 文件夹中)
@page "/login"
<p> I am login page </p>
Index.razor
@page "/"
@inject NavigationManager NavigationManager
<AuthorizeView>
<NotAuthorized>
@if (true)
{
NavigationManager.NavigateTo("/login");
}
</NotAuthorized>
</AuthorizeView>
目前,使用上面的代码,我得到一个异常:Microsoft.AspNetCore.Components.NavigationException。 引用 .cshtml 页面的正确方法是什么?
答案 0 :(得分:0)
您可以创建一个自定义组件,在初始化时触发 javascript 重定向。像这样
A[U_Size]=A[i]
然后在您的页面中:
[Parameter]
public string Path { get; set; }
[Inject] private IJSRuntime JSRuntime { get; set; }
protected override async Task OnInitializedAsync()
{
await JSRuntime.InvokeVoidAsync("BlazorHelpers.RedirectTo", Path);
}
你的 Js 应该是这样的:
<AuthorizeView>
<NotAuthorized>
<RedirectTo Path="Something"></RedirectTo>
</NotAuthorized>
</AuthorizeView>