【发布时间】:2013-05-06 18:00:30
【问题描述】:
我有一个简单的 MVC4 应用程序,但是我想将 knockoutJS 和 SignalR 结合起来,但我遇到了一个挑战,这似乎是由我试图在同一个按钮上分配 2 个 onclick 事件的事实:使用 knockoutJS 和 signalR。请让我知道这里有什么问题。下面是代码。
这是我的视图模型:
var viewModel = {
searchString: ko.observable("Monique"),
search: function () {
$.ajax({
url: "@Url.Action("Search")",
type: "post",
data: ko.toJSON(this),
contentType: "application/json",
success: function (result) {
$('#info').append(result.message);
}
});
},
searchClient: function () {
//do sth
},
showAll: function () {
//do sth
}
};
ko.applyBindings(viewModel);
而这部分和signalR有关:
这是我在服务器上的集线器:
[HubName("send")]
public class DataHub: Hub
{
public void Send(string text)
{
Clients.All.addMessage(text);
}
}
这是一个signalR js部分:
$(function () {
var hub = $.connection.send;
hub.client.addMessage = function (text) {
alert(text);
$('#info').append(text);
};
$.connection.hub.start().done(function () {
$('#btnServer').click(function () {
alert('btn server clicked');
hub.server.send("something");
});
});
});
如你所见,knockoutJS 这里有onclick事件处理search: function () { }
在signalR中我也有$('#btnServer').click(function() {。
结果,与 knockoutJS 相关的部分有效,但与 signalR 相关的部分无效...
【问题讨论】:
标签: asp.net-mvc-4 knockout.js signalr