使用knockout.js的MVVM中的最佳实践是:为每个表单使用域类,DTO或自定义模型

时间:2012-08-19 09:00:34

标签: asp.net-mvc mvvm knockout.js dto

我正在使用knockout.js和ASP.MVC创建一个MVVM网站。

这里的一切看起来都非常简单,直到我面对复杂的网络表单。 我有一组代表我的域模型对象的DTO类。

我正在创建的表单非常复杂,并不反映我的域中的DTO。 所以我在这里有两个选择:

  1. 手动创建表示表单数据的自定义模型类。创建返回/接受此类的REST方法,并使viewmodel使用此类,以便从表单中填充/收集数据。

  2. 使用明确的REST方法,只返回/接受域DTO。使用JavaScript来调用REST方法,获取DTO,并在JavaScript中为表单数据绑定创建一个复杂的对象。

1 个答案:

答案 0 :(得分:3)

您的ViewModel是您的视图的'模型,因此其界面应该密切反映客户端UI。这意味着视图模型应该调整您的DTO以呈现此界面。