在我看过的所有MVC Diagrams中,View和Model之间总是存在连接,表明View可以访问Model.
我只是想知道:这什么时候适用?目前,我让我的Controller Action从QueryString中获取一个参数,查询Model以获取MyObjectViewData,然后返回一个View,传入MyObjectViewData.所以基本上我介于两者之间.
这似乎是合乎逻辑的方法,但它不符合Model和View共同开展业务的假设.
没有控制器,他们互动的典型情况是什么?
解决方法
在MVC(在Web上),View通过呈现Model实体的特定实例直接与Model交互.它仅通过控制器间接作用于模型.在非Web实现中,您可以使用观察者模式向View元素注册处理程序,View元素可以调用模型中的方法,无需Controller交互即可更新模型. ASP.NET MVC和其他基于Web的实现比非Web实现更松散耦合.在我看来,这是一件好事.它确实倾向于实现更加丰富的Controller实现,并且您需要小心保持Controller和Model之间的关注点分离.
Web实现可能应该在没有从Model到View的间接连接的情况下绘制,因为如果没有Controller,你就无法在两者之间真正进行通信.我想有人可能会说Web服务可以提供这种连接,但我认为它只是Controller的另一种形式.