ASP.net MVC - 视图如何访问模型?

7
在我看到的所有MVC图表中,视图和模型之间总是有一个连接,表示视图可以访问模型。
我只是想知道:这适用于什么情况?目前,我的控制器操作从查询字符串中获取参数,查询模型以获取MyObjectViewData,然后返回视图,并传递MyObjectViewData。因此,我在控制器之间。
这似乎是合乎逻辑的方法,但它并不符合模型和视图有业务关系的假设。
通常它们在没有控制器的情况下互动的典型情况是什么?
1个回答

6
在MVC(在Web上)中,视图直接与模型交互,通过呈现模型实体的特定实例。它只通过控制器间接地作用于模型。在非Web实现中,您可以使用观察者模式向View元素注册处理程序,这些处理程序可能会调用模型中的方法,以更新模型而无需控制器交互。ASP.NET MVC和其他基于Web的实现比非Web实现更松散耦合。在我看来,这是一件好事。它确实会导致控制器实现变得更加臃肿,并且需要小心保持控制器和模型之间的关注点分离。
Web实现可能应该被画成没有从模型到视图的间接连接,因为您没有控制器就无法真正地在两者之间进行通信。我想有人可能会认为Web服务可以提供此连接,但我认为它只是另一种形式的控制器。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接