1

我有一个带有模型(实体)DLL 项目的 MVC4 应用程序,该项目用于 BusinessLogic 和 DataAccess 层。MVC 控制器使用一些映射器扩展方法将视图模型(绑定到视图)转换为模型,并将模型对象传递给业务逻辑层。

我的问题是:如果我需要一些像 KnockoutJS 这样的客户端功能,那么创建一组 KnockoutJS ViewModel 是一种好习惯吗?我担心 ViewModel 的可维护性和频繁更改。

4

2 回答 2

2

我会说不,knockoutJS 是一个客户端库,因此不应该真正规定您的服务器如何发送数据。只要您的视图模型包含渲染所需的所有相关信息,这就是您所需要的。客户端如何处理与服务器完全无关。

通过创建 knockoutJS 特定的视图模型,您实际上将服务器响应耦合到您的客户端,这不是一个好主意 - 如果您更改为不同的客户端怎么办?如果你想支持多个客户端怎么办?

我建议创建一个特定于 KnockoutJS 的视图模型的客户端表示。

于 2012-12-21T01:33:57.553 回答
0

我建议您创建特定于 KnockoutJS(或任何其他客户端使用)的 ViewModel。

我觉得在您的站点中使用的 ViewModels,在服务器端,应该能够轻松更改,因为站点既创建它们又使用它们。此外,您有编译器可以让您知道是否有错误。

然而,我觉得当我们将这些模型暴露给客户时,它们更像是一份不应该改变的合同,或者至少不应该经常改变。

于 2012-12-21T01:25:44.047 回答