2

すべてのユーザー プロファイルで「Last Active」DateTime フィールドを維持しようとしています。当初は、このチェックを Index() コントローラーに関連付ける予定でしたが、ユーザーが常にそのコントローラーを呼び出すとは限らないため、グローバルなものが必要です。

アクション フィルターは、最高レベルのコントローラーに適用されるようです。そのため、Global.asax の何らかの魔法でうまくいくのではないかと考えています。これは十分に一般的な問題のようですが、Google や SO で何も引き出す​​ことができませんでした。

4

1 に答える 1

2

「ユーザーが常にコントローラーを呼び出すとは限らない」とはどういう意味ですか? mvc Web アプリケーションがある場合、ユーザーの操作は常にコントローラーでのアクションになります。

ただし、HTTPモジュールを使用することをお勧めします。呼び出しごとにHTTPモジュール クラスが常に実行されます。問題に対しては、それがより適切な選択になると思います。http://support.microsoft.com/kb/307996が参考になるかもしれません。または、Google で検索すると、実装に役立つ多くの結果が見つかります。

編集

フィルターを既に実装している場合は、以下に類似したコードをglobal.asax (applicaton_start()メソッド)に追加するだけで、すべてのアクションにフィルターを適用できます。

var myfilter = new MyFilter();
GlobalConfiguration.Configuration.Filters.Add(myfilter);
于 2013-10-20T18:06:53.067 に答える