しばらくグーグルで調べていたので、asp mvc 3でこれを行う方法に少し混乱しています。
したがって、タスクは、いくつかのコントローラーのビューに共通のレイアウト (またはマスター?) ページを用意することです。すべてのビューは、それ自体が厳密に型指定されています... 実際、このレイアウト ページは、厳密に型指定されたオブジェクトを視覚化しています。したがって、このオブジェクトをレイアウト ページに渡して「Html.RenderPartial()」に渡すか、ページ内で正しくレンダリングする必要があります。
記事Passing Data to View Master Pages (C#) (mvc2 の古いものですが) は、モデルを に渡す、基本抽象コントローラー クラスを提供する例を示していますViewData
。これで治るかもしれません。
しかし...
いくつかのスレッドで、厳密に型指定されたマスター ページを作成する方法を見つけました。
<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>
それで、mvc3にも同じアプローチがありますか? または、データをレイアウト ページに渡す唯一の方法は、ViewBag または ViewData を使用することですか?
ViewModel データを asp.net-mvc のマスター ページにバインドする最良の方法を読んだ後、Darin の回答を検討しましたが、このビューの束は同じレイアウトになると考えており、DRY に反対する理由はないと考えています。原理。
では、厳密に型指定されたオブジェクトをレイアウト ページに渡すにはどうすればよいでしょうか。それとも私は何かを混ぜましたか?