Model view controller 从另一个控制器调用操作方法的最佳方式是什么?

Model view controller 从另一个控制器调用操作方法的最佳方式是什么?,model-view-controller,controller,invoke,actionmethod,Model View Controller,Controller,Invoke,Actionmethod,从控制器B中的动作方法调用控制器A中的动作方法的最佳方式是什么? 有这样一个调用是真的吗?最好的方法是调用return RedirectToAction() 但正确的方法是将相关代码从控制器/操作移动到外部位置、服务或业务逻辑层。这是错误的,他们住在你的控制器,这不是地方,它现在让你头痛如何跳转到另一个控制器,然后回来。这是错误的。与其想办法四处走动,不如简单地修复您的体系结构。事实上,我有两个相关的对象,如a和B。每个对象都有单独的控制器。在控制器A的动作中,我也想调用控制器B中的动作。谢谢你

从控制器B中的动作方法调用控制器A中的动作方法的最佳方式是什么?
有这样一个调用是真的吗?

最好的方法是调用
return RedirectToAction()


但正确的方法是将相关代码从控制器/操作移动到外部位置、服务或业务逻辑层。这是错误的,他们住在你的控制器,这不是地方,它现在让你头痛如何跳转到另一个控制器,然后回来。这是错误的。与其想办法四处走动,不如简单地修复您的体系结构。

事实上,我有两个相关的对象,如a和B。每个对象都有单独的控制器。在控制器A的动作中,我也想调用控制器B中的动作。谢谢你的帮助。但我想使用另一个控制器的动作,在不同控制器的动作中间。通过重定向操作,我必须使用Return关键字。还有别的办法吗?所以不要回来;将方法结果放入变量中并使用它。例如:
var b=newcontrollerb();var action=b.DoAction()真的,在使用RedirectToAction之前,我使用过这个。我声明ControllerB的新实例,然后调用所需的操作。正如我一开始问的那样,这是调用不同控制器的ActionMethod的最佳方式吗?您的问题的直接答案是肯定的。然而,当正确使用MVC架构时,它不是正确的流程。我从来没有从另一个动作调用过动作,从Beta 1.0开始我就在MVC中编写代码。在MVC中,从另一个控制器调用动作方法似乎不太好。在我的应用程序架构中,我的每个数据表都有一个控制器。另一方面,业务视图中的一个对象在MyDB中可能有多个表。当我为每个表而不是每个对象定义控制器时,我将为一个对象定义多个控制器,就像现在一样。然后,一些控制器可在另一个控制器中用于某些功能。这是我关于打电话或不打电话的模棱两可之处!若我把普通控制器看作一个普通类,那个么问题就会解决。。。