Имея googling в течение некоторого времени, я немного смущен тем, как это сделать в asp mvc 3.
Итак, задача состоит в том, чтобы иметь общую страницу макета (или мастер?) для нескольких видов контроллеров. Все представления строго типизированы... Эта страница макета фактически визуализирует некоторый сильно типизированный объект. Поэтому мне нужно передать этот объект на страницу макета, чтобы передать его в "Html.RenderPartial()" или сделать его прямо на странице.
Статья Передача данных для просмотра основных страниц (С#) (хотя и старая для mvc2) дает пример для предоставления базовой абстракции класса контроллера, передав модель в ViewData
. Это может быть лекарство.
Но...
В некоторых потоках я нашел способ сделать строго типизированную главную страницу:
<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>
Итак, есть ли такой же подход в mvc3? Или единственный способ передать данные на страницу макета - использовать ViewBag или ViewData?
Прочитав как лучше всего привязать данные ViewModel к главной странице в asp.net-mvc, я посчитал Дарина ответом, но все же думаю, что это куча представлений будет иметь одинаковую компоновку и не видит причин идти против принципа DRY.
Итак, как передать строго типизированные объекты в макеты страниц? Или я что-то перепутал?