【发布时间】:2018-06-18 08:45:22
【问题描述】:
从我的 SignalR Hub 类 (ASP.Net Core 2.1) 访问 IUrlHelper 的正确方法是什么?
我正在尝试在 Hub 类中动态生成指向不同操作的链接。
【问题讨论】:
标签: asp.net-core .net-core signalr asp.net-core-signalr
从我的 SignalR Hub 类 (ASP.Net Core 2.1) 访问 IUrlHelper 的正确方法是什么?
我正在尝试在 Hub 类中动态生成指向不同操作的链接。
【问题讨论】:
标签: asp.net-core .net-core signalr asp.net-core-signalr
你不能。 UrlHelper 需要一个 ActionContext 实例来创建 URL,它只存在于请求的上下文中。 SignalR 集线器存在于请求管道之外。相反,您应该将 URL 从存在 UrlHelper 的某个位置(例如控制器操作)传递到适当的集线器方法,而不是依赖集线器来生成它。
【讨论】:
ActionContext 实际存在。如果您尝试在常规控制台应用程序中使用此服务类,它也会失败。 ActionContext 在您的集线器中为空,因为集线器不是请求管道的一部分。