Для этого вы можете использовать DisplayTemplates и EditorTemplates. Так что, если я правильно читаю ваш вопрос, у вас есть такая настройка:
Если вы используете .NET 4.0 (ура для ковариантных обобщений!)
System.Web.Mvc.ViewPage<MainViewModel<object>>
Если вы используете .NET 3.5:
System.Web.Mvc.ViewPage<MainViewModel<object>>
public class MainViewModel
{
public object PartialViewsViewModel { get; set; }
}
Затем вы можете вызвать DisplayFor для этого объекта, чтобы получить частичное представление. Итак, ссылаясь:
<%= Html.DisplayFor(m => m.PartialViewsViewModel) %>
Будет искать шаблон в папке DisplayTemplates для обложки с именем вашего типа. Поэтому, если у вас есть ParticularViewModel.ascx в ваших DisplayTemplates, он будет использовать этот элемент управления в качестве «частичного представления». Если вы использовали какой-либо другой тип модели представления, выполните поиск OtherViewModel.ascx (например).
Шаблон для ParticularViewModel.ascx будет иметь:
System.Web.Mvc.ViewUserControl<ParticularViewModel>
Что позволяет вам рассматривать объект как строго типизированную модель.