4

_layout.cshtml ページにデータを渡すための最適なパターンを考え出そうとしています。

ビュー固有のすべてのモデルが派生する共通の基本クラスを作成しようとしています。この基本クラスは、私の _layout.cshtml によって認識され、ユーザーに関する詳細を入力したり、ヘッダーに適切な画像をロードしたりするために使用されます。たとえば、ここにそのスニペットがあります。

public abstract class ViewModelBase
{
    public string Username { get; set; }
    public string Version { get; set; }
}

私の_layout.cshtmlの上部に...

@model MyProject.Web.Controllers.ViewModelBase

モデルに必要な情報をハイドレートするための共通領域が必要で、次のパターンを使用する予定です...

  1. 各アクション メソッドは、ViewModelBase から派生したモデルを作成して水和します。
  2. アクションが完了します。
  3. ActionFilterAttribute を作成し、OnActionExecuted をオーバーライドして、現在の Result を ViewModelBase にキャストします。
  4. 変換が成功したら、ViewModelBase の詳細に関連データを入力します。

これが私の質問です...

  1. ActionFilterAttribute (OnActionExecuted) の使用は、私がやろうとしていることの良いパターンですか?
  2. アクションで作成された結果を HttpActionExecutedContext から取得する方法がわかりません。これはどのように行われますか?
4

1 に答える 1