2

我是 MVC ASP.NET 的新手,需要在另一个控制器的操作中调用一个控制器的操作。在那里我创建了控制器对象并调用了我所需的操作,如下所示,

controllerOne co = new controllerOne();

co.requiredFunction();

但是我的一位资深人士建议我不要使用这种方法,它会杀死 MVC 模式使用其给定的 ActionInvoker.InvokeAction()函数来调用其他控制器的函数,我现在使用如下,

public class HomeController : Controller
{

    this.ActionInvoker.InvokeAction(new System.Web.Mvc.ControllerContext(
        this.ControllerContext.RequestContext, new controllerOne()), 
        "requiredAction");
}

这工作正常,但我不知道我使用的方式ActionInvoker.InvokeAction()是否正确。我搜索找到任何示例,但我可以找到任何示例。

所以我的问题是:我是否正确使用它?

4

2 回答 2

2

为此,许多人会创建一个服务来封装它requiredFunction并通过它的接口将服务注入到两个控制器中

于 2012-12-18T16:11:22.130 回答
1

用这个

var ctrl= new MyController();
ctrl.ControllerContext = ControllerContext;
//call action
 return ctrl.Action();
于 2012-12-18T16:19:31.320 回答