2010-06-22 81 views
0

在桌面应用程序中使用MVC模式,将视图引入其各自的控制器有什么好方法,反之亦然?例如,你应该使用构造函数注入来赋予视图控制器,然后让视图在控制器上调用setView方法,并将其自身作为参数传递?如何在MVC模式中引入视图和控制器?

(问题是不特定于任何框架/平台。)

回答

3

观点,并应尽可能哑巴。他们不应该知道,或依靠特定的控制器实例化它们。充其量,他们应该有权访问某种基本控制器类的引用,这些引用在构建时交给它们,通常作为包装模型的“视图数据”对象的一部分,以供使用。

您的控制器应负责实例化视图,为视图提供它将显示的模型,并返回视图的结果。该视图不应该回调到控制器中,以告诉它返回什么,因为这会控制View的逻辑流,而这看起来不像MVC。

+0

谢谢!关于第一部分,您希望何时将视图引用到基本控制器类的引用,而不仅仅是模型? – fig 2010-06-22 22:09:39

+0

你会给它。取决于你的实现,它不会被要求给它一个控制器引用,但是通常控制器可以访问你的视图可能需要的初始请求数据。例如,在ASP.Net MVC中,每个View都会传入一个模型,但是也有一个名为“ViewData”的着名结构,它包含一个“ControllerContext”对象,如果您的视图需要在请求数据中查找,则可以访问该对象。 – womp 2010-06-22 22:16:04

相关问题