Если вам нужна возможность делать то, что вы описываете, вам может быть интересно прочитать о Html.RenderAction () . Это полезно во многих обстоятельствах, но не является «чистым» MVC (возможно, прагматичным MVC).
У меня похожая ситуация с вами, когда я использую частичные представления для загрузки разных экранов поиска (кнопки отправки поиска одинаковы), только поля формы различаются.
Я делаю это следующим образом. В контроллере базового класса у меня есть параметр общего типа, который я передаю объекту модели представления (SearchObject имеет тип объекта).
public abstract class SampleController<T> : Controller where T : new()
public virtual ActionResult SearchForDocuments()
{
searchModel.SearchObject = // Create type of T;
// Some more code
return View("SomeView", searchModel);
}
У меня тогда строго типизированное представление, которое передает SearchObject в частичное представление.
<% Html.RenderPartial(@"../Search/SearchCriteriaTemplates/" + /*Specific view name*/, Model.SearchObject); %>
Тогда частичное представление строго типизировано и знает, что делать с моделью строго типа.