На мой взгляд, это зависит от вашего сценария использования.
Вы можете создать модель представления, содержащую три модели подвидов, но вам нужно спросить себя, собираюсь ли я использовать какую-либо из трех моделей подвидов где-нибудь еще? Если нет, то вы можете просто использовать одну модель большого представления. Иначе, нет ничего плохого в модели представления «обертка», которая инкапсулирует меньшие модели представления.
Вы можете сохранить три модели представления, как вы определили выше, и вы можете использовать синтаксис Html.RenderAction в своем представлении, чтобы фактически перейти и извлечь каждую из частей вашей страницы. Вы бы определили действие на вашем контроллере, в обязанности которого входит заполнение каждой из моделей малого представления и возврат представления для этой модели.
<div id="leftCol">
@{Html.RenderAction("LeftCol", "Controller");}
</div>
<div id="midCol">
@{Html.RenderAction("MiddleCol", "Controller");}
</div>
<div id="rightCol">
@{Html.RenderAction("RightCol", "Controller");}
</div>
Это даст вам возможность использовать вложенные части в любом месте на вашем сайте, и вам нужно будет определить метод действия и частичные просмотры только один раз.
Второй вариант также является личным фаворитом, поскольку вы можете быстро использовать JQuery для частичной загрузки страницы, если для заполнения и рендеринга этих разделов требуется несколько секунд (если это имеет смысл для вашей страницы). Теперь ваша страница открывается быстро, у вас есть JS-функция, которая отправляет и извлекает эти разделы, помещает над ними небольшую графику загрузки и загружает / отображает с помощью запроса AJAX. Опять же, только если это имеет смысл для вас, но использование методов действия Partial Views / Render обычно дает вам больше гибкости в повторном использовании на сайте и частичном рендеринге AJAX.