在 MCV 分部视图中使用 SignalR 中心



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

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

如果我同时包含两者,则仅刷新第一个部分视图。不调用第二个视图中心函数。

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

$(function () {
//same for both views
var hub = $.connection.someHub; 
//Each view uses a different function
hub.client.partialupdateX = function (data) {
// Add the message to the page.
tabledata = JSON.parse(data);

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

两个视图的中心相同,但每个视图附加到不同的函数。 在服务器端,这两个函数在同一周期内触发。

我是否必须打破隔离并将中心 js 函数放在顶层页面? 我在这里错过了什么吗?

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

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

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

最新更新