MVC3和KnockoutJS DRYly

时间:2012-02-22 04:10:02

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

因此我在.Net中使用MVC的方式是为每个View创建ViewModel。

现在,使用Knockout,我会在javascript而不是C#类中创建我的ViewModel吗?然后让我的主模型(在这种情况下,EF生成模型)作为我唯一的C#模型类?或者我还会继续创建一个C#ViewModel类以及我的Knockout ViewModel吗?

我试图干预这个项目,但我不确定这种情况下的最佳做法。

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:1)

  1. 像往常一样创建视图模型。
  2. 创建一个HTML帮助程序,从中生成KO视图模型。

答案 2 :(得分:0)

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

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