1

我正在创建一个使用2个部分视图的控制台视图。每个局部视图封装一种数据并消耗自己的SignalR数据。在MCV部分视图中使用SignalR Hub

如果我在主视图中仅包含一个局部视图,则局部视图可以完美工作。这包括我认为无关紧要的事情。

如果我同时包括这两个,只刷新第一个局部视图。第二个视图集线器功能不被调用。

附接到轮毂如下面的结构简单的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

结果很简单。我只能启动一次集线器,因此在包含两个部分视图之后,我在主页面中添加了以下功能。

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

所有集线器函数都可以在部分视图内部绑定。