Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# asp.net mvc使用主动模式还是被动模式_C#_Asp.net Mvc_Design Patterns_Asp.net Mvc 5 - Fatal编程技术网

C# asp.net mvc使用主动模式还是被动模式

C# asp.net mvc使用主动模式还是被动模式,c#,asp.net-mvc,design-patterns,asp.net-mvc-5,C#,Asp.net Mvc,Design Patterns,Asp.net Mvc 5,我正在阅读以下关于MVC模式的文章。在本文中,作者指定了两种模型: 被动模式: 其中控制器更新模型并最终更新视图 活动模型: 其中,模型和视图实现了观察者模式,以便将模型中的更改通知给视图 在创建Hello World ASP.NET MVC 5项目时,我注意到Controller调用Controller.View()和Controller.View(model)将视图返回给用户。这是否意味着它使用被动模式?而且,似乎模型总是由控制器更新,如果视图更新模型,它仍然是MVC吗 你是对的,在大多数情

我正在阅读以下关于MVC模式的文章。在本文中,作者指定了两种模型:

被动模式: 其中控制器更新模型并最终更新视图

活动模型: 其中,模型和视图实现了观察者模式,以便将模型中的更改通知给视图


在创建Hello World ASP.NET MVC 5项目时,我注意到Controller调用Controller.View()Controller.View(model)将视图返回给用户。这是否意味着它使用被动模式?而且,似乎模型总是由控制器更新,如果视图更新模型,它仍然是MVC吗

你是对的,在大多数情况下,MVC中常用的方法是被动模型

如果您想实现活动模型模式,可以使用KnockoutJS,其中ViewModels位于js中,并且当它们的值更改时,它们会更新视图。与观察者模式类似,淘汰者也有可观察的对象。参见下面的示例

(有关可观测值,请参见步骤2)


在ASP.NET MVC中,模型是被动的,因为控制器只是将模型传递给视图,而视图本身从当前模型获取数据,即没有控制器,模型无法更新数据

WPF使用MVVM模式—模型处于活动状态,因为当数据发生更改时,模型可以向视图发送通知并更新数据


注意:如果在ASP.NET MVC中您使用的是KnockoutJS或AngularJS,那么,在这种情况下,它是MVVM模式。

我会说它相当被动,除非您使用MVVM.Downvoter执行类似signalr的操作,那么有什么原因要求澄清是个坏主意,以及我下次如何做得更好?不幸的是,对于大多数ASP.NET MVC应用程序来说,答案都是“两者都不是,它都不是一组美化的活动记录”。