1

グローバルフィルターに登録された属性を取得しました。そして、2アクションで無効にしたい。これどうやってするの?

4

1 に答える 1

4

これを処理するには、いくつかの方法があります。

  1. アクション フィルターのコードを制御できる場合は、それを変更して、コントローラー アクションが (作成する) カスタム マーカー属性で装飾されているかどうかをテストし、その場合は実行しないようにすることができます。次に、このマーカー属性で 2 つのコントローラー アクションを装飾します。
  2. この属性のコードを制御できない場合は、IFilterProviderインターフェイスを実装することでカスタム フィルター プロバイダーを記述でき、実装GetFiltersする必要があるメソッド内で、コントローラー アクションがカスタム マーカー属性で装飾されているかどうかをテストし、含めないようにすることができます。結果のグローバル フィルター。次に、フィルターをグローバル アクション フィルターとして登録せずに、代わりにカスタム フィルター プロバイダーを登録します。フィルター プロバイダーは、アクション フィルターへの依存関係の挿入を提供するためによく使用されます。たとえばan article、StructureMap を使用して詳細に示したのは次のとおりです。
于 2013-02-25T13:43:35.677 に答える