2

私は MVC ASP.NET を初めて使用し、別のコントローラーのアクションであるコントローラーからアクションを呼び出す必要がありました。そこでコントローラーのオブジェクトを作成し、以下のように必要なアクションを呼び出しました。

controllerOne co = new controllerOne();

co.requiredFunction();

しかし、先輩の 1 人が、このアプローチを使用しないようにアドバイスしてくれました。これは、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 に答える