我正在使用knockout.js和ASP.MVC创建一个MVVM网站。
这里的一切看起来都非常简单,直到我面对复杂的网络表单。 我有一组代表我的域模型对象的DTO类。
我正在创建的表单非常复杂,并不反映我的域中的DTO。 所以我在这里有两个选择:
手动创建表示表单数据的自定义模型类。创建返回/接受此类的REST方法,并使viewmodel使用此类,以便从表单中填充/收集数据。
使用明确的REST方法,只返回/接受域DTO。使用JavaScript来调用REST方法,获取DTO,并在JavaScript中为表单数据绑定创建一个复杂的对象。
答案 0 :(得分:3)
您的ViewModel是您的视图的'模型,因此其界面应该密切反映客户端UI。这意味着视图模型应该调整您的DTO以呈现此界面。