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