2011-12-21 10 views
2

Q:アクションメソッド内でアクションフィルタ内でインスタンス化されたオブジェクトを作成するにはどうすればよいですか?アクションフィルタでビューモデルをインスタンス化しますか?

背景:

私はMVCのWebサイトで(とりわけ)多数の形態を持っています。

それぞれには独自のビューモデルがあり、基本型(FormPage)から継承します。

私の規約では、viewmodel型を "Form"を先頭に付けたアクション名として指定します。だから私のContactUs viewmodelはFormContactUs:FormPageです。

基本的なviewmodelプロパティの数はすべてのフォームで同じように設定されていますが、これを行うにはアクションメソッド内で呼び出す一般的なユーティリティ機能があります。

action-nameと命名規則に基づいてタイプを選択し、アクションフィルタ内のすべてのフォームに共通する基本プロパティを設定すると、ちょっとDRY-erになります。私の唯一のハードルは、アクションメソッド内でフィルタ内でインスタンス化されたオブジェクトを使用可能にする方法を考えているようです。

+1

問題のある領域を囲むコードをいくつか表示できますか? – Jan

答えて

3

Q:アクションメソッド内でアクションフィルタ内でインスタンス化されたオブジェクトを作成するにはどうすればよいですか?

HttpContext.Itemsに保存できます。これはリクエストライフサイクル全体で利用できます。これは、カスタムモデルのバインダーは、アクションフィルターよりシナリオに適しているようです。

関連する問題