Hay muchas opciones para manejar esto, pero hay una forma muy directa que hemos encontrado para manejar esto que no implica volver a diseñar toda su aplicación.
Hemos tenido problemas similares, donde nuestra página/parcial tiene un tipo ViewData.Model bien definido, pero la vista contiene un parcial que se reutiliza en varias páginas. También hemos tratado de evitar el uso de ViewDataDictionary también.
Sin embargo, encontramos que exactamente el caso que describe es el escenario EXACTO en el que nos gusta utilizar una entrada ViewDataDictionary. Mantenemos una clase Constants estática en nuestro modelo de aplicación que contiene clases internas para cada tipo de constante, incluidas las claves ViewData para que no tengamos cadenas para que estas cosas floten en todas partes.
Luego, nuestra acción de Controlador rellena la clave ViewData y el parcial dentro de la otra página/comprueba parcialmente la existencia de esa clave y la utiliza en lugar de ViewData.Model. Hace el trabajo parcial en cualquier lugar que lo necesite y mantiene su ViewModel limpio. Al usar constantes, evitamos cadenas sin formato en todas partes.
Creo que se está refiriendo a RenderAction no RenderPartial del ensamblaje Futures. –
Tienes razón, gracias. He editado la publicación. :) –