0

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

这个想法是:

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

我猜这是您何时使用 SignalR ( http://signalr.net/ ) 来执行此操作?然后使用来自 KO ( http://knockoutjs.com/documentation/plugins-mapping.html ) 的映射插件将其转换为 observables。

所以我的问题是:

  1. 在通过 SignalR 将 POCO 服务器端数据发送到 KO 方面,我的假设是否正确
  2. 有没有另一种方法来实现1.?
4

1 回答 1

1

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

从那里您将需要更新对象的相应 JS 表示,如果您使用 Knockout,则会向所述对象的所有观察者发出正确的通知。您也可以通过观察 JS 对象的更改并将消息发送回服务器来执行此操作。

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

于 2013-07-11T04:47:53.593 回答