Лично я предпочитаю второй подход, так как он позволяет обрабатывать меню независимо от основной логики. Используя дочерние действия, вы можете иметь совершенно отдельный жизненный цикл контроллера меню без необходимости иметь модель базового представления для абсолютно всех представлений, которые используют эту главную страницу. Наследование просто не подходит для этой ситуации, но, конечно, это не значит, что вы должны полностью исключить его. Каждый сценарий специфичен, и в зависимости от точных деталей (которые вы не указали для своего) могут быть разные подходы.
Только не думайте, что если Html.Action
хорошо для одного сценария, это будет хорошо для всех. Могут быть некоторые специфические ограничения проекта, которые делают неуместными или могут достигать этого с помощью другого подхода.
Не существует универсального решения, которое будет работать во всех ситуациях. Иначе программистам бы не понадобилось: -)