我正在阅读以下article中的MVC模式。在文章中,作者指定了两种模型:
被动型号 控制器更新模型并最终更新视图的地方
活动型号 模型和视图实现观察者模式的位置,以便通知模型中的更改以进行查看。
创建Hello World ASP.NET MVC 5项目时,我注意到Controller调用 Controller.View()和 Controller.View(model)来返回视图给用户。这是否意味着它使用被动模型?此外,似乎模型始终由Controller更新,如果View更新模型,它仍然是MVC吗?
答案 0 :(得分:4)
你是对的,在大多数情况下,MVC中的常见方法是被动模型。
如果要实现活动模型模式,可以使用其中ViewModel在js中的KnockoutJS,并在更改值时更新视图。像观察者模式KnockoutJS有可观察性。见下面的例子。
http://learn.knockoutjs.com/#/?tutorial=intro(有关可观测量的参见步骤2)
答案 1 :(得分:2)
在ASP.NET MVC中 - 模型是被动的,因为控制器只是将模型传递给View,而View自身从当前模型获取数据,即模型无法在没有控制器的情况下更新数据。
WPF使用MVVM模式 - 模型处于活动状态,因为当数据发生变化时,Model可以向View发送通知并更新数据。
注意:如果在ASP.NET MVC中使用的是KnockoutJS或AngularJS,那么,在这种情况下,它是MVVM模式。