Model view controller 在mvc中从另一个控制器调用控制器上的方法
我想在另一个控制器上调用一个方法。问题是,在我的项目中,所有控制器都是使用Windsor castle创建的,Windsor castle解决了依赖关系。这意味着我不能使用new实例化控制器,因为它需要依赖项。如何让MVC实例化一个控制器,然后对其调用一个方法(返回一个对象)?我将告诉您两件事:1)首先,我将向您展示如何最有可能实现您想要的,2)然后我将建议您以另一种方式实现您的目标:) 1:当使用自动连接时,从容器中获取内容的方法是通过将依赖项添加为构造函数参数来声明依赖项-例如(假设容器知道如何根据控制器的具体类型解析控制器): 这很可能使您可以通过使用Model view controller 在mvc中从另一个控制器调用控制器上的方法,model-view-controller,castle-windsor,Model View Controller,Castle Windsor,我想在另一个控制器上调用一个方法。问题是,在我的项目中,所有控制器都是使用Windsor castle创建的,Windsor castle解决了依赖关系。这意味着我不能使用new实例化控制器,因为它需要依赖项。如何让MVC实例化一个控制器,然后对其调用一个方法(返回一个对象)?我将告诉您两件事:1)首先,我将向您展示如何最有可能实现您想要的,2)然后我将建议您以另一种方式实现您的目标:) 1:当使用自动连接时,从容器中获取内容的方法是通过将依赖项添加为构造函数参数来声明依赖项-例如(假设容器知道
HomeController
对AccountController
执行所需操作。然而,这不是很漂亮
2:将一个控制器注入另一个控制器可能不是您(真正)想要的。我猜您确实希望将控制器动作方法中的任何逻辑移动到一个专用服务中,例如,
DoSomethingInteresting
,该服务碰巧实现了IDoStuff
,然后让您的两个控制器都依赖于IDoStuff
。这对您有意义吗?您是否有一些代码可以发布,以便我们更好地了解您的方法?
public class HomeController
{
readonly AccountController accountController;
public HomeController(AccountController accountController)
{
this.accountController = accountController;
}
}