2

我正在使用新的 Web API 和 Knockout 开始一个概念验证 SPA,到目前为止,我已经设法创建 API 控制器,使用 Knockout 使用它,并使用 Knockout 映射映射实体和数组。

我现在正在尝试创建一个简单的 CRUD,但我无法理解如何实现 ViewModel。

到目前为止,我提出了 2 个选项,如下所示:

  • 我可以在服务器上定义一个 ViewModel,它包含实体的属性,以及相同实体的数组。当我输入 CRUD 功能时,我调用服务器并检索该 ViewModel,其中包含实体列表和用于创建新条目的属性。

  • 我可以定义 2 个 ViewModel,一个带有网格数据,另一个带有实体的属性。当我调用 CRUD 功能时,我得到了网格数据,当我想编辑/创建一个新条目时,我调用服务器并为此检索 ViewModel。

在这两个选项中,我使用一个视图,其中包含网格定义和编辑/创建表单格式,我在 JQuery 弹出窗口中显示。

我不知道哪个是最好的选择,我开始倾向于第二个,但我们将不胜感激。

提前致谢!

4

1 回答 1

1

您真的需要在启动“创建/编辑”对话框时调用服务器吗?难道你不能有一个 EntityVM 的 ObservableArray(一个 Knockout 视图模型)作为你的网格的绑定源,当你单击 Add New 或单击现有项目时,创建/编辑对话框可见(可能是也完成了绑定)使用空 EntityVM 作为其数据源或从网格源的项目复制的填充 EntityVM?然后当您单击保存时,将实体作为 JSON 发送到服务器并返回表示更新的网格数据的 JSON 响应?或者这不是对您的上下文的正确理解?

于 2012-10-21T22:45:00.440 回答