在MCV部分视图中使用SignalR Hub

时间:2017-08-02 14:50:50

标签: javascript model-view-controller signalr signalr-hub signalr.client

我正在创建一个使用2个局部视图的控制台视图。每个局部视图都封装一种数据并使用它自己的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();
});

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

我是否必须打破隔离并将集线器js功能放在顶级页面? 我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:1)

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

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

所有集线器功能都可以在部分视图中绑定。