コントローラー ハンドラー ファクトリでインスタンス化せずに、カスタム アクション インボーカーを使用することは可能ですか? たとえば、カスタム コントローラー ファクトリでは次のようになります。
IController IControllerFactory.CreateController(RequestContext reqContext, string controllerName)
{
var controller = base.CreateCOntroller(reqContext,controllerName ) as Controller;
controller.ActionInvoker = new CustomActionInvoker();
}
または、カスタム アクション インボーカーを使用せずに MVC アクションを実行できる別の方法はありますか?
質問の更新
コントローラー、発言HomeController
、Index
アクションがあります。Index
コントローラのメイン アクションです。Index
アクションが実行されると、MVC ビューは Ajax - GET リクエスト (jTemplates を使用) を使用して複数のアクションを起動します。
例
// Controller actions
// main action and View
public ActionResult Index() { ... }
public ActionResult AjaxAction1(string id) { ... }
public ActionResult AjaxAction2() { ... }
public ActionResult AjaxAction3() { ... }
ここで、特定のシナリオに応じて、これらのアクションの一部を実行しないようにフィルター処理したいと考えています。たとえば、が 2 に等しいAjaxAction1
ときに実行を停止したいとします。id
元の質問に戻ります。アクションインボーカーを使用せずにこれを達成する方法はありますか? アクションインボーカーを使用したくない理由は、私のプロジェクトが構造化されて循環参照になってしまった方法です。
どんなアイデアでも大歓迎です。