Mając googlowania jakiegoś czasu, jestem trochę mylić z tym, jak to zrobić w ASP MVC 3.Jak przekazać viewmodel do layoutu/strony wzorcowej?
Tak więc zadaniem jest mieć wspólny układ (lub mistrz?) Aktualizacja poglądów kilku kontrolerów . Wszystkie widoki są silnie wpisane ... Ta strona układu faktycznie wizualizuje niektóre mocno wpisane obiekty. Potrzebuję więc przekazać ten obiekt do strony układu, aby przekazać go do `Html.RenderPartial() 'lub renderować go na stronie.
Artykuł Passing Data to View Master Pages (C#) (choć stary dla mvc2) podaje przykład dostarczenia podstawowej abstrakcyjnej klasy kontrolera, przekazując model do ViewData
. To może być lekarstwo.
Ale ...
W niektórych wątków znalazłem sposób można wnieść silnie wpisany stronę wzorcową:
<%@ Master ... Inherits="System.Web.Mvc.ViewMasterPage<MyWeb.Models.Client>" %>
tak, to czy to samo podejście w mvc3? Czy jedynym sposobem przekazania danych do strony układu jest użycie ViewBag lub ViewData?
Po przeczytaniu what is the best way to bind ViewModel data to master page in asp.net-mvc, zastanawiałem się nad odpowiedzią Darina, ale nadal uważam, że ta garść poglądów będzie miała ten sam układ i nie widzę powodu, aby podążać za zasadą DRY.
A więc, jak przekazywać obiekty o silnym typie na strony układu? A może coś wymieszałem?
Napisałem to jakiś czas temu - unikaj woreczków. http://completedevelopment.blogspot.com/2011/12/stop-using-viewbag-in-most-places.html na temat opublikowany, użyj widoków częściowych lub działań podrzędnych i buforowania, jeśli jest to wymagane. –
Tego właśnie chciałem, ale nie byłem pewien, aby spróbować własnymi rękami ... Podczas gdy zacząłem uczyć się mvc z * Sanderson S, Freeman A. - Pro ASP.NET MVC 3 Framework 3ed. *, Nie miałem znaleźć coś o przekazywaniu modeli do układu. Chociaż, jak widzę, nic nie stoi na przeszkodzie, aby to zrobić. Wielkie dzięki – horgh
@AdamTuliper Nie mam tendencji do korzystania z ViewBag i ViewData, ale bałem się, że muszę .. – horgh