0

我是 MVC 架构的新手,我想学习 ASP.NET MVC 基础知识。在名为“模型视图控制器、模型视图演示器和模型视图视图模型设计模式”的文章中,我了解了 MVC 的一些优点。我在文章中看到每个模型都有一些观察者的观点。所以模型使用observer pattern. 当模型中的某些状态发生变化时,会通知所有视图。但是,据我所知,ASP.NET MVC 一次只显示一个视图。所以,对我来说奇怪的是这如何适用于 Microsoft Asp.NET MVC。我可以说该模型在 ASP.NET MVC 中只有一个观察者(视图)要通知吗?

4

2 回答 2

0

AFAIK,在 MVC 架构中,模型是一个对象,它将用于在控制器之间传递数据到视图,反之亦然。
因此,如果控制器更改了模型,则要呈现给用户的视图会从模型中获取数据。

于 2013-08-03T18:59:44.873 回答
0

ASP MVC 中的视图更改由给定视图的特定控制器方法执行触发。

每个视图都有分配给它的特定控制器方法,因此视图可以呈现为用户对控制器调用的响应。

例如,您有一个视图,您可以在其中显示从数据库中获取的行网格。您单击站点底部的“下一步”按钮以转到第二页。您基本上所做的是调用控制器方法,该方法以页码为参数。此控制器方法根据您要显示的页码调用数据库以获取数据,获取这些数据库实体(作为模型类)并将它们传递给视图,以便显示它们。

视图更改由控制器触发。模型是您的数据/逻辑表示。这可以通过 POCO 类、您的算法、数据库连接等。

另一个例子,你输入你的浏览器地址:

http://stackoverflow.com/questions/18035611/understanding-asp-net-mvc-architecture

通过这样做并按 ENTER,您告诉 StackOverflow 站点启动名为“questions”的控制器,并将参数传递给它,即 18035611 和“understanding-asp-net-mvc-architecture”。控制器所做的是从数据库中获取必要的数据,将其转换为模型对象并将其发送到视图,以便在其 HTML 代码中显示它们。

当然这只是类比。我不确定 SO 使用的是什么技术,但如果它使用 ASP MVC,它就像我描述的那样。

于 2013-08-03T20:23:27.287 回答