一方与另一方的责任是什么?一个与另一个应该采用什么样的逻辑?哪一个打服务和数据库?如何确定我的代码是应该放在viewmodel还是控制器中?
记录,我使用的是asp mvc
答案 0 :(得分:3)
将控制器与ViewModels混合使用并不罕见。在这种情况下,您可以将以下职责分配给角色:
ViewModel 表示演示文稿的状态和行为。
控制器负责应用程序的工作流程。此外,它介于ViewModels之间。因此,它通过使ViewModel明确地相互引用来促进松散耦合。
有关这些角色的更多信息:Link
答案 1 :(得分:2)
嗯,MVVM实际上是一个WPF和Silverlight特定的设计模式。它特别依赖并要求这些技术的数据绑定,命令和模板功能。
如果您使用的是ASP.NET MVC,则MVVM不适用于体系结构。根据定义,它是围绕模型 - 视图 - 控制器(因此ASP.NET MVC )构建的,并使用该架构设计模式。
答案 2 :(得分:1)
我同意Reed,尽管最近Hanselminutes Phil Haak谈到了asp.net MVC 2,并多次引用了'ViewModel' - 所以我推断即使你使用MVC也可以创建VM
此外 - 我一直认为MVVM应用程序受益于至少一个包含应用程序范围问题的VM,例如导航,我认为它更像是一个Controller而不是ViewModel ......
答案 3 :(得分:0)
我同意你们两个,但只是想添加另一个模式MVP(模型视图演示者),它最适合ASP.Net和Windows表单,但不能用于WPF和Silverlight。 MVVM是专为WPF和Silverlight应用程序设计的。