Istnieje wiele opcji do obsługi tego, ale istnieje jeden bardzo prosty sposób, w jaki radzimy sobie z tym, który nie wymaga ponownej architektury całej aplikacji.
Mamy podobne problemy, gdzie nasza strona/częściowa ma dobrze zdefiniowany typ ViewData.Model, ale widok zawiera części, które są ponownie używane na wielu stronach. Staraliśmy się również unikać używania narzędzia ViewDataDictionary.
Jednak okazało się, że dokładnie opisany przypadek to scenariusz DOKŁADNY, w którym chcielibyśmy użyć wpisu ViewDataDictionary. W naszym modelu aplikacji przechowujemy statyczną klasę Constants, która zawiera wewnętrzne klasy dla każdego typu stałej, w tym klucze ViewData, dzięki czemu nie mamy ciągów dla tych rzeczy pływających wszędzie.
Następnie, nasza akcja kontrolera zapełnia klucz ViewData, a część wewnątrz drugiej strony/sprawdza częściowo istnienie tego klucza i używa go zamiast ViewData.Model. To sprawia, że częściowa praca jest wszędzie tam, gdzie jest potrzebna i utrzymuje swój ViewModel w czystości. Używając stałych, wszędzie unikamy ciągów znaków.
Wydaje mi się, że odnosisz się do zestawu RenderAction, a nie do RenderPartial z zespołu Futures. –
Masz rację, dziękuję - zredagowałem wpis. :) –