Есть много вариантов для обработки этого, но есть один очень простой способ, который мы нашли, чтобы справиться с этим, что не связано с повторной архитектурой всего вашего приложения.
У нас были похожие проблемы, где наша страница/частичная имеет четко определенный тип ViewData.Model, но представление содержит частичное, которое повторно используется на нескольких страницах. Мы также попытались избежать использования ViewDataDictionary.
Однако мы обнаружили, что именно так вы описываете сценарий EXACT, где нам нравится использовать запись ViewDataDictionary. Мы сохраняем статический класс Constants в нашей модели приложения, который содержит внутренние классы для каждого типа константы, включая ключи ViewData, так что у нас нет строк для этих вещей, плавающих повсюду.
Затем действие нашего контроллера заполняет ключ ViewData и частичное внутри другой страницы/частичную проверку наличия этого ключа и использует это вместо ViewData.Model. Это делает частичную работу в любом месте, где это необходимо, и сохраняет ваш ViewModel в чистоте. Используя константы, мы везде избегаем необработанных строк.
Я считаю, что вы имеете в виду RenderAction не RenderPartial из сборки Futures. –
Вы правы, спасибо - я редактировал публикацию. :) –