2

我们有一个广泛使用 AJAX 调用的 ASP.NET MVC 应用程序。

这些 AJAX 调用将数据发送到我们的控制器方法——这个控制器方法需要一个参数,它是一个简单的 POCO ViewModel 类。

在我们的 JavaScript 中,我们创建了一个匿名对象,其属性映射到 ViewModel 的属性,MVC 框架处理所有路由,以便在控制器方法中我们获得具有所有属性的 ViewModel。

一切都很好。

我们要做的是采用一种稳健的方式来确保 JavaScript 匿名类和 ViewModel 类保持同步——如果开发人员更改了一个,那么他们就会更改另一个。我们当然可以在两个文件中添加注释说“改变一个,改变另一个”,并且对于未能保持这些同步的开发人员的严重殴打的威胁,但即使有代码审查,这也是一个可能被错过。

拥有某种可以检查这一点的自动化单元测试会很棒,但我不知道如何实现这一点。

有什么建议么?

提前致谢

格里夫

4

1 回答 1

0

有一个名为 knockoutjs 的 javascript 库,它完全用于您想要实现的目标。您似乎正在尝试将 MVVM 模式与 ASP.NET MVC 框架一起使用。对于任何 MVVM 模式,使视图模型与视图保持同步是一个常见问题。KnockoutJS 允许您创建直接绑定到视图的 javascript 视图模型客户端。视图更新时视图模型会更新,视图模型更新时视图也会更新。KnockoutJS 使用一种称为观察者模式的通用模式来实现这一点。KnockoutJS 还提供了一个映射插件,因此视图模型可以接收 JSON 格式的服务器端视图模型并更新自身,从而更新视图。这是您正在寻找的功能。该库和映射插件可以在他们的网站上找到,www。淘汰赛.com。仅供参考...这是一个生产级库。他们也有很好的文档和示例。我希望这有帮助。不要重新发明轮子。

于 2013-11-06T20:50:39.510 回答