ASP.Net MVCでグローバルフィルタを選択的に無効にする方法
2023-09-07 15:39:42
質問
NHibernate セッションを開いたり閉じたりするすべてのコントローラアクションに対してグローバルフィルタを設定しました。これらのアクションの95%は何らかのデータベースアクセスを必要としますが、5%は必要ありません。これらの 5% のために、このグローバルフィルターを無効にする簡単な方法はありますか。私は他の方法で行って、データベースを必要とするアクションだけを飾ることができますが、それははるかに多くの仕事でしょう。
どのように解決するのですか?
マーカー属性を書けばよいでしょう。
public class SkipMyGlobalActionFilterAttribute : Attribute
{
}
で、グローバルアクションフィルタで、アクションにこのマーカーがあるかどうかをテストします。
public class MyGlobalActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.ActionDescriptor.GetCustomAttributes(typeof(SkipMyGlobalActionFilterAttribute), false).Any())
{
return;
}
// here do whatever you were intending to do
}
}
で、あるアクションをグローバルフィルタから除外したい場合は、単にmarker属性で装飾するだけです。
[SkipMyGlobalActionFilter]
public ActionResult Index()
{
return View();
}
関連
-
[解決済み] ファイルアップロード ASP.NET MVC 3.0
-
[解決済み] ASP.NET MVC Frameworkで複数のサブミットボタンを処理する方法は?
-
[解決済み] ASP.NET MVCでenumからドロップダウンリストを作成するにはどうすればよいですか?
-
[解決済み] ASP.NET MVC - カスタムIIdentityまたはIPrincipalの設定
-
[解決済み] ASP.NET MVCでビューをコンパイルする
-
[解決済み] ASP.Net MVCのmodelStateからすべてのエラーを取得する方法は?
-
[解決済み】ASP.NET MVCのフォームでチェックボックスを処理するにはどうすればよいですか?
-
[解決済み】"JSONリクエストが大きすぎてデシリアライズできませんでした "の表示について
-
[解決済み】ASP.NET MVCで属性を使用して特定のアクションのキャッシュを防止する
-
[解決済み] NerdDinnerでASP.NET MVCでModelState.IsValidは何のために有効なのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JsonResultが特殊文字(apostrophe)を \u0027 としてパースしています。
-
[解決済み] ASP.NET MVCアプリケーションで、デバッグ用の起動ページを設定するにはどうすればよいですか?
-
[解決済み] MVCで、文字列の結果を返すにはどうしたらいいですか?
-
[解決済み] ASP.NET MVCでリクエストスロットルを実装するための最良の方法は?
-
[解決済み】MVC 4 @Scripts "does not exist".
-
[解決済み】ASP.NET MVC 3 Razor - EditorForにクラスを追加する。
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み] X-SourceFilesヘッダーは何をするものですか?
-
[解決済み] HTMLヘルパーでURLを生成する
-
[解決済み] ASP.NET MVCとIIS7で生のHTTPリクエスト/レスポンスをログに記録する