WebForms では、ページが読み込まれるたびにメソッドを実行したい場合Page_Load()
は、メインのマスター ページのメソッドでこのメソッドを呼び出します。
MVC3 を使用する場合、代替の、おそらくより良い解決策はありますか?
WebForms では、ページが読み込まれるたびにメソッドを実行したい場合Page_Load()
は、メインのマスター ページのメソッドでこのメソッドを呼び出します。
MVC3 を使用する場合、代替の、おそらくより良い解決策はありますか?
クラスベースコントローラーを作成できます
public class BaseController : Controller
{
public BaseController()
{
// your code here
}
}
そして、あなたの新しいコントローラーはすべて、ベースコントローラーを次のように実装させます
public class MyController: BaseController
また、basecontroller は、他のコントローラーに必要な他の機能を保存するのに非常に便利であることがわかりました。
MVC でこれを行う最も適切な方法は、フィルターを使用することだと思います。MSDN はフィルターについて適切な説明を提供しています。ネット上には、
このような記事や説明が多数あります。
編集 このサンプルはさらに優れています。単純なアクション フィルターを提供します。これは、global.asax に登録され、関連するコントローラーの実際のアクションが実行される前に、すべての要求で実行されます。このような概念により、リクエスト オブジェクトにアクセスし、実際のコントローラーが実行される前に必要なものを変更できます。
コードをコントローラーのコンストラクターに入れることができます。このような:
public class FooController : Controller
{
public FooController()
{
doThings();
}