在 MCV 局部视图中使用 SignalR Hub

Using SignalR Hub inside MCV Partial Views

我正在创建一个控制台视图,它使用 2 个部分 views.Each 部分视图封装了一种数据并使用它自己的 SignalR 数据。

如果我在主视图中只包含一个局部视图,则局部视图可以完美运行。我包含哪个视图并不重要。

如果我同时包含两者,则只会刷新第一个局部视图。未调用第二个视图中心函数。

作为以下简单结构附加到集线器的js函数在局部视图中定义:

$(function () {
    //same for both views
    var hub = $.connection.someHub; 

    //Each view use a diferent function
    hub.client.partialupdateX = function (data) {
        // Add the message to the page.

        tabledata = JSON.parse(data);

        table.ajax.reload();
    };
    $.connection.hub.start();
});

两个视图的集线器相同,但每个视图附加不同的功能。 在服务器端,两个函数在同一个周期触发。

我是否必须打破隔离并将 hub js 函数放在顶级页面? 我在这里遗漏了什么吗?

结果很简单。我只能启动一次集线器,所以在包含两个部分视图后,我将以下功能放在主页中。

$(function () {         
     $.connection.hub.start();
});

所有的 hub 函数都可以在局部视图中绑定。