【发布时间】:2012-04-03 11:17:17
【问题描述】:
我正在使用 SignalR 和 KnockoutJS,似乎找不到从使用 MVC4 框架提供的数据库中获取数组的简单方法。
我从服务器发送单个对象没有问题 - 但是当我尝试发送一个数组时,我卡住了。希望有更多经验的人能够发现我所犯的可能明显的错误,并说明应该如何做到这一点(JavaScript 不是我的强项)。据我所知,问题是从服务器传递的数据的映射。非常感谢任何帮助!
SignalR Hub(orders 是一个带有 Id 和 Name 的简单表)
public class feedHub : Hub
{
private dataContext db = new dataContext();
public void GetAll()
{
var orders = db.orders.ToArray();
Clients.getData(orders);
}
}
显示订单的简单 HTML 代码;
<div id="Demo">
<div data-bind="foreach: orders">
<div data-bind="html: Id"></div>
<div data-bind="html: Name"></div>
</div>
</div>
JavaScript
<script type="text/javascript">
var viewModel = {
orders: ko.observableArray(orders)
};
ko.applyBindings(viewModel, $("#Demo")[0]);
$(function () {
// Client side version of the feebHub class
var hubcon = $.connection.feedHub;
// getData called from server
hubcon.getData = function (data) { viewModel.orders(data) };
// Start connection and call getAll
$.connection.hub.start(function () { hubcon.getAll(); });
});
</script>
【问题讨论】:
标签: javascript knockout.js asp.net-mvc-4 signalr