【发布时间】:2019-01-04 18:11:34
【问题描述】:
在 Blazor 客户端中,可以使用实现重定向
using Microsoft.AspNetCore.Blazor.Browser.Services;
(...)
BrowserUriHelper.Instance.NavigateTo("/route")
但这在 Blazor 服务器项目中不起作用,因为它会生成以下错误:
无法将“Microsoft.AspNetCore.Blazor.Server.Circuits.RemoteJSRuntime”类型的对象转换为“Microsoft.JSInterop.IJSInProcessRuntime”类型。
Blazor-Server 中的重定向是什么样的?
【问题讨论】:
-
问题,你为什么要在服务器上重定向到另一个控制器?你不能简单地执行你想要的方法吗?而不是路由到新的 HttpContext?否则,您将需要渲染部分视图并将其作为可再次渲染的某种形式的可访问数据传回。
-
因此,当您创建服务器端项目时,您将获得服务器和客户端项目。我想在剃须刀页面的客户端应用程序中执行此操作。当用户单击按钮时,请求会发送到服务器,根据响应,我想重定向到不同的页面或保持当前状态。
-
是的,但是当客户端点击事件在客户端内导航时,您会从客户端触发服务器端事件。客户端应用程序根据服务器给出的响应进行导航。然后客户端将根据服务器提供的响应使用适当的组件视图。
-
所以服务器必须实际告诉客户端导航到不同的页面?那么如何在我的场景中实现呢?不知道有没有例子?
-
对于非服务器端托管的 Blazor 实现,是的。对于 Blazor,目前我不必使用它。
标签: c# blazor-server-side