何时使用强类型视图模型或使用JSON对象

时间:2011-12-19 16:55:59

标签: asp.net asp.net-mvc json mvvm

当我在视图和控制器层之间传递对象时应该使用强类型视图模型与JSON对象时,我感到很困惑。我的理解是使用JSON对象遵循MVVM模式,并保持层松散耦合。任何反馈都将不胜感激。

2 个答案:

答案 0 :(得分:1)

两种方法都有利弊。

一方面,松散类型意味着你可以在整个地方传递相同的类型,消费者可以只消费他们想要的字段(如果存在的话)。这使得您的程序看起来很简单,因为它具有如此简单的架构。

另一方面,这意味着您将字段的解释推送到消费者,如果您有复杂的数据类型,这很快就会成为消费者处理的噩梦。

毫无疑问:你会在某处处理类型安全。你可以选择在哪里。

我个人更喜欢具有定义良好的接口的强类型系统,因此我推荐这样做。

编辑

  

Randolpho,是的我同意强烈打字的偏好   对象。在我的大多数应用程序工作中,我得到一个强类型的传递   对象回到我的控制器,在那里我将映射到强类型   “视图模型”对象,然后将该视图模型传递回局部   / view。这个当前项目我正在进行REST调用并获得JSON   对象返回。这就是我应该使用的问题   JSON或类型对象。 - 德里克肯尼

如果您正在制作REST Web服务,则应始终从View中返回JSON。

但在内部,我认为你最好使用与JSON序列化的强类型数据类型。

答案 1 :(得分:0)

视图模型通常与直接返回HTML的控制器操作一起使用。 JSON更适合从AJAX调用中使用。话虽这么说,您也可以将JSON用于客户端UI框架,例如knockoutjsbackbonejs