You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.8.1 MVC中SignalR GetHubContext调用返回undefined

问题分析与解决方案

问题核心是Controller调用SignalR客户端方法时未传递邀请数量参数:

  • 当通过Hub的Notify方法触发时,你会先查询邀请数量,再通过Clients.All.GetCountInvitations(invitations.Count)把数值传给前端,所以控制台能输出正确结果;
  • 但Controller里调用context.Clients.All.GetCountInvitations()时,没有传入任何参数,前端接收的result自然是undefined。

修复方案

方案1:在Controller中补充参数传递

直接在Controller里查询邀请数量,再传给客户端方法:

var mongo = new Mongo();
var invitations = await mongo.GetCountInvitations(LoginController._username);
var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
context.Clients.All.GetCountInvitations(invitations.Count);

方案2:复用Hub的Notify逻辑

避免重复代码,直接调用Hub的Notify方法触发推送:

var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
await context.Clients.All.InvokeAsync("Notify");

修改后,通过Controller触发时,前端就能接收到正确的邀请数量,控制台不再输出undefined。

内容的提问来源于stack exchange,提问作者MarcoGG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 15:12:35