7

ネストされたマスター ページに ViewData を割り当てる良い方法はありますか? たとえば、トップ レベルのマスターページには、ログインしているユーザーに関する情報が含まれている場合があります。また、ユーザーが部門のページにいるときに表示されるネストされたマスターページもあります。そのデータを部門ページでのみ利用できるようにしたい.

だから、これはそれがどのように見えるかです:

Top Level Master Page - Includes ViewData["userData"]
    |
    |
    ---> Nested Master Page - Includes ViewData["departmentalData"]

したがって、ネストされたマスター ページを使用するビューがある場合は常に、ViewData["userData"] と ViewData["departmentalData"] の両方が含まれます。しかし、最上位のマスター ページのみを使用している場合は、ViewData["userData"] しかありません。これは可能ですか?

4

5 に答える 5

1

ViewData をマスター ページへのデータ キャリアとして使用することを主張する場合 (おそらく使用する MvcContrib プロジェクトの Html.RenderAction(...) を使用する代わりに)、ネストされたマスターページがどのような場合に使用されるかを特定できれば、使用すると、ActionFilter をセットアップして必要なデータを ViewData["departmentalData"] に入力できます。

于 2009-05-18T06:17:46.657 に答える
0

1 つの可能性は、ViewPage と ViewMasterPage の両方に拡張メソッドを記述して、必要なデータを取得することです。確かではありませんが、これは Rob Conery が彼のCommerce.MVCパッケージで行ったことだと思います。それを見てください。

于 2009-05-06T20:16:47.087 に答える
0

コントローラーが、表示されるページに適切な ViewData を設定している限り、使用されているマスター ページの数は問題になりません。または、何か不足していますか?

于 2009-06-11T17:52:06.423 に答える
0

同じ問題がありました。ここまでで、すべてのコントローラーの基本クラスと、ViewData を生成する保護されたメソッドを作成しました。この特定のマスター ページを使用するすべてのアクションから呼び出します。

私は間違いなくこの質問に従って、他の人が何を考え出したかを確認します。

于 2009-06-05T20:21:07.107 に答える
0

MVC にはサブコントローラーの概念があります (これがまだ存在しており、MVC フレームワークに組み込まれるかどうかはわかりません)。これは、codeplex の mvc contrib プロジェクトにあります。いくつかの説明またはブログ投稿はここにあります...

http://mhinze.com/subcontrollers-in-aspnet-mvc/

オブジェクトをそのサブコントローラーに渡す方法については、こちらで説明しています...

http://mhinze.com/passing-objects-to-subcontrollers/

これはマスターページに基づいていませんが、あなたを助けることができます...

于 2009-06-07T17:28:12.983 に答える