当我在视图和控制器层之间传递对象时应该使用强类型视图模型与JSON对象时,我感到很困惑。我的理解是使用JSON对象遵循MVVM模式,并保持层松散耦合。任何反馈都将不胜感激。
答案 0 :(得分:1)
两种方法都有利弊。
一方面,松散类型意味着你可以在整个地方传递相同的类型,消费者可以只消费他们想要的字段(如果存在的话)。这使得您的程序看起来很简单,因为它具有如此简单的架构。
另一方面,这意味着您将字段的解释推送到消费者,如果您有复杂的数据类型,这很快就会成为消费者处理的噩梦。
毫无疑问:你会在某处处理类型安全。你可以选择在哪里。
我个人更喜欢具有定义良好的接口的强类型系统,因此我推荐这样做。
编辑
Randolpho,是的我同意强烈打字的偏好 对象。在我的大多数应用程序工作中,我得到一个强类型的传递 对象回到我的控制器,在那里我将映射到强类型 “视图模型”对象,然后将该视图模型传递回局部 / view。这个当前项目我正在进行REST调用并获得JSON 对象返回。这就是我应该使用的问题 JSON或类型对象。 - 德里克肯尼
如果您正在制作REST Web服务,则应始终从View中返回JSON。
但在内部,我认为你最好使用与JSON序列化的强类型数据类型。
答案 1 :(得分:0)
视图模型通常与直接返回HTML的控制器操作一起使用。 JSON更适合从AJAX调用中使用。话虽这么说,您也可以将JSON用于客户端UI框架,例如knockoutjs和backbonejs。