ASP.NET MVC - 模型通知视图?
在MVC的一些经典描述中,模型通过观察者模式通知视图。在我看来,ASP.NET MVC 不会发生这种情况,因此模型、视图和控制器之间的基本关系之一缺失了。
是这样吗?如果是这样,为什么?
In some of the classic descriptions of MVC, the Model notifies Views via the observer pattern. It seems to me that this doesn't happen with ASP.NET MVC, and so one of the fundamental relationships between Model, View, and Controller is missing.
Is this the case? If so, why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ASP.NET MVC 中的视图是无状态的。它们存在的时间很短,然后被发送给客户端。
该过程是这样的:
请求进入控制器。
控制器检索模型并实例化视图(将模型传递给它)。
渲染视图,将标记返回到客户端,然后处理掉。
因此,由于视图在发送到客户端后不再存在......没有任何关于模型更改的通知。
Views in ASP.NET MVC are Stateless. They exist for a very short time and then are sent down to the client.
The process goes something like this:
Request comes in to the Controller.
Controller retrieves the Model and instantiates the View (passing it the Model).
The View is rendered, the markup returned to the client, and then disposed of.
Therefore, since the View no longer exists after it is sent to the client...there's nothing to notify about Model changes.
不需要观察者模式。在 View 的原始定义中是这样说的:
在网络应用程序的上下文中,唯一可能的视图是浏览器呈现的标记(HTML/XML)。因此,与 ASP.NET MVC 中一样,视图代码被传递给一个模型实例,它可以访问该实例以向用户提供信息。
Observer pattern is not needed. In the original definition of View it says:
In the context of a web app, the only View possible is markup (HTML/XML) rendered by a browser. So, as in ASP.NET MVC, the View code is handed a Model instance that it can access to provide information to the user.