C#POCO动态地对JS对象

时间:2013-07-11 04:01:40

标签: mvvm knockout.js signalr

我正在使用Knockout.js查看MVVM。我想要实现的一件事就是“轻松地”将我的代码作为相应的JS对象提供给客户端MVVM POCO。

这个想法是:

a)如果我更改了C#POCO,它也会反映在JS对象中 b)更改POCO中的值将导致与客户端进行必要的交互以更新JS对象

我猜这是你何时使用SignalR(http://signalr.net/)来做到这一点?然后使用KO(http://knockoutjs.com/documentation/plugins-mapping.html)中的映射插件将其转换为可观察对象。

所以我的问题是:

  1. 在获取POCO服务器方面,我的假设是否正确 通过SignalR
  2. 向KO提供辅助数据
  3. 还有另一种方法可以达到1.?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用SignalR将对象的POCO表示的实时更改推送到客户端。我的意思是,就改变一个属性而言,它不会是自动的,它会神奇地发送一条消息。您必须构建一些管道以确保在特定对象更改时发送特定的SignalR消息。您可以选择再次重新发送该对象的整个表示(例如,所有当前值),或者您只能发送您知道已更改的值以提高效率。

从那里你需要更新对象的相应JS表示,如果你使用Knockout,它将导致向所述对象的所有观察者发出适当的通知。您也可以通过观察JS对象的更改并将消息发送回服务器来向另一个方向执行此操作。

显然关键是每个对象必须具有某种唯一标识,以便您可以将消息与正确的JS / POCO对象相关联。