0

在 MVC 的一些经典描述中,模型通过观察者模式通知视图。在我看来,这不会发生在 ASP.NET MVC 中,因此模型、视图和控制器之间的基本关系之一缺失了。

是这样吗?如果是这样,为什么?

4

2 回答 2

2

ASP.NET MVC 中的视图是无状态的。它们存在很短的时间,然后被发送到客户端。

这个过程是这样的:

  1. 请求进入控制器。

  2. 控制器检索模型并实例化视图(将模型传递给它)。

  3. 视图被渲染,标记返回给客户端,然后被处理掉。

因此,由于视图在发送到客户端后不再存在......没有任何关于模型更改的通知。

于 2010-12-01T18:06:03.803 回答
0

不需要观察者模式。在 View 的原始定义中它说:

视图附加到其模型(或模型部分),并通过提问从模型中获取演示所需的数据。

http://heim.ifi.uio.no/~trygver/2007/MVC_Originals.pdf

在 Web 应用程序的上下文中,唯一可能的视图是浏览器呈现的标记 (HTML/XML)。因此,与在 ASP.NET MVC 中一样,视图代码被交给了一个模型实例,它可以访问该实例以向用户提供信息。

于 2010-12-01T21:16:01.960 回答