0

すべてのページでユーザーの注文を表示する必要がある厳密に型指定されたユーザー コントロールがあり、マスター ページに含まれています。現在の注文を取得できる OrdersController があり、他の場所で使用されています。

マスター ページの UserControl に、その特定のコントローラー/コントローラー アクションからデータを取得するように指示するにはどうすればよいですか? 通常のビューと同じように、ascx 内のビューデータにアクセスしたいと思います。

4

2 に答える 2

1

モデルと ViewData をパラメーターとして RenderPartial メソッドに渡します。親ビュー ページにいるかのように、モデルとビューのデータにアクセスできるようになります。

<% Html.RenderPartial ( "../Shared/HRMasterData/DependentPersonDossiers",
  ViewData.Model, ViewData ); %>
于 2009-02-11T12:36:38.093 に答える
0

これを行う 1 つの方法は、ベース コントローラーを実装することです。注文を取得するロジックをベース コントローラーに移動します。ベース コントローラーで OnActionExecuted をオーバーライドし、結果が ViewResult かどうかを確認します。そうである場合は、注文を見つけて ViewData に追加します。マスターで、注文がビュー データに存在するかどうかを確認し、存在する場合はそれらをレンダリングします。そうでない場合は、「注文データを利用できません」というメッセージを表示します (後者は発生しないはずですが、安全を確保するのが最善です)。注文ビューをレンダリングするアクションのために、OrdersController のベース コントローラーのコードを再利用 (呼び出し) します。

于 2009-02-11T12:30:55.830 に答える