【问题标题】:MVC3 and KnockoutJS DRYlyMVC3 和 KnockoutJS DRYly
【发布时间】:2012-02-22 04:10:01
【问题描述】:

所以我一直在 .Net 中使用 MVC 的方式是为每个视图创建 ViewModel。

现在,通过使用 Knockout,我会在 javascript 中而不是 C# 类中创建我的 ViewModel 吗?然后将我的主模型(在这种情况下,EF 生成的模型)作为我唯一的 C# 模型类?还是我仍然会与我的 Knockout ViewModel 一起创建一个 C# ViewModel 类?

我正在尝试 DRYly 设置此项目,但我不确定在这种情况下的最佳做法。

【问题讨论】:

    标签: asp.net-mvc-3 knockout.js dry


    【解决方案1】:

    您可以为 C# 服务器端创建视图模型 (VM),并且仍然将它们用于 ASP.NET MVC 视图。然后也为客户端 javascript 视图创建虚拟机。但我最喜欢的方式是使用 MVC 视图作为页面的基础,并让模型成为 JavaScript 模型的基础。唯一的 VM 将是 JavaScript VM,因为大部分演示实际上是在客户端完成的。换句话说,在 MVC 中做更多的静态管道,然后做动态交互客户端。

    如果您主要使用 KO 等客户端 JS 库进行构建,除非您有充分的理由,否则我不会从用于 MVC 端的 VM 开始。

    如果您有具体问题,我很乐意提供帮助。

    【讨论】:

      【解决方案2】:
      1. 像往常一样创建视图模型。
      2. 创建一个 HTML 助手,从中生成一个 KO 视图模型。

      【讨论】:

        【解决方案3】:

        您应该将您的 Knockout 视图模型基于来自服务器的视图数据,以便至少使用来自服务器的数据对其进行初始化,而无需发出单独的请求来获取该数据。

        您可以选择使用mapping plugin 将视图数据映射到您的视图模型。

        【讨论】:

          猜你喜欢
          • 2012-09-18
          • 2012-03-15
          • 2015-07-09
          • 2013-11-14
          • 1970-01-01
          • 2020-07-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多