mik*_*eyy 14 c# blazor-server-side
在 Blazor 客户端中,可以使用以下方法实现重定向
using Microsoft.AspNetCore.Blazor.Browser.Services;
(...)
BrowserUriHelper.Instance.NavigateTo("/route")
Run Code Online (Sandbox Code Playgroud)
但是,这在 Blazor 服务器项目中不起作用,因为它会生成以下错误:
无法将“Microsoft.AspNetCore.Blazor.Server.Circuits.RemoteJSRuntime”类型的对象转换为“Microsoft.JSInterop.IJSInProcessRuntime”。
Blazor-Server 中的重定向如何?
Meh*_*ral 33
如果可以在razor页面触发,可以使用如下:
@page "/YourPageName"
@inject NavigationManager NavigationManager
<h1>xxx</h1>
.
.
.
@code {
void MethodToTriggerUrl()
{
NavigationManager.NavigateTo("PageToRedirect");
}
}
Run Code Online (Sandbox Code Playgroud)
经过一段时间的试验,我发现在服务器端这是有效的:
using Microsoft.AspNetCore.Blazor.Services;
(...)
UriHelper.NavigateTo("/route");
Run Code Online (Sandbox Code Playgroud)
当然,看起来几乎相同,但确实有效(至少在 Blazor 0.8 中)