我已经完成了Asp.net mvc应用程序。当我完成它时,我看到了这个图
Microsoft’s Smart Client Factory documentation
我不明白模特和mvc模式中的视图之间的直接沟通,我从未见过这样的事情。
所以我需要知道:
答案 0 :(得分:1)
如您所见,图表在模型和视图之间有一条虚线。据我所知,这意味着连接不是直接的。对我来说,这看起来像是某种观察者模式的参考。一些客户端技术,如Facebook React和AngularJS,都有观察者模式的实现。也就是说,视图"看起来"在模型中,当模型发生变化时,视图会重新渲染自身以反映视图中的变化。
通过这种方式,您可以向后看,并说模型的更新会触发视图的事件,然后重新呈现视图。我认为这是虚线在此图中的含义。
您可以在MVC视图中手动实现此功能,但您也可以利用我上面提到的框架。
答案 1 :(得分:1)
您展示的图表是一个MVC应用程序,它不受http短命令的限制 - 比如Windows窗体应用程序或类似的东西。在那里你可以从模型中发送一些信息,比如“嘿看 - 我得到了一些新数据”。
对于网络来说,这是不可能的(没有AJAX / SignalR / ...)。你没有那条虚线。稍微简化(因为你可以有许多过滤器和模型以及其他插件点)控制器收集输入(如果有的话)并询问或创建作为ActionResult返回的(View)模型。然后创建视图(例如,使用Razor视图引擎)并将其发送到浏览器。
从那时起,用户认为他的视图(浏览器显示的内容)与Web服务器上创建的视图之间没有任何关联。因此,他们之间不能发送任何事件。
如果您需要(服务器端)模型和(服务器端)视图之间的连接,那么可以通过事件或通知属性更改等来完成此操作。