gpt4 book ai didi

asp.net-mvc-3 - 何时使用 MVVM(即 Knockout.js)或仅从 Controller 操作返回 EditorTemplate 对象

转载 作者:行者123 更新时间:2023-12-03 10:23:56 29 4
gpt4 key购买 nike

在需要通过 ajax 将新项目添加到列表中的情况下,使用 Knockout 之类的最大好处是什么。

到目前为止,在我看来,我一直在做的是使用编辑器模板(带有关联的 View 模型)来呈现项目列表。然后添加一个新项目,我向一个加载服务器端 View 模型的操作发出请求,并返回一个刚刚附加到列表的 EditorTemplte 对象。像这样:

return Json(new { this.RenderPartialViewToString("MyEditorTemplate", model) });

knockout 的做事方式需要实现另一个 View 模型来显示项目,然后另一个模板来显示它。但是这样做需要重复代码,因为 View 模型必须在两个地方表示:在 cserver 端代码中,然后是 knockout View 模型的 View 。这不是坏习惯吗?

我是否遗漏了什么,或者了解 knockout 和 MVVM 的目的?

最佳答案

您将从 Knockout 中看到的最大好处是,您无需访问服务器即可将新项目添加到列表中 - 一切都发生在客户端。这有很多好处,包括:

  • 您可以减少服务器上的负载。
  • 您可以改善最终用户的体验。
  • 您可以使用您的模型使页面上的多个元素保持最新,而无需任何服务器交互。

  • 在这些 Knockout 教程中可以找到两个很好的例子:
  • Working with Lists and Collections
  • Loading and Saving Data

  • 至于复制代码,如果您查看这两个教程,您会注意到您不需要复制代码。例如:
  • 创建一个 View 以显示整个列表。
  • 要向列表中添加新项目,请创建在向页面添加新项目时加载的局部 View - 该局部 View 绑定(bind)到 Knockout
  • 当您提交整个表单时,该列表中的所有内容都将被提交 - 包括您通过 Knockout 添加的那些项目。

  • 您的 ViewModel 将特定于您的列表项(您不一定需要为所有内容创建完整的 ViewModel)。而且您的 View 特定于单个列表项。

    希望这很清楚。 Knockout 非常简单,他们有一些很棒的文档和教程可以帮助您前进。

    关于asp.net-mvc-3 - 何时使用 MVVM(即 Knockout.js)或仅从 Controller 操作返回 EditorTemplate 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480961/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com