AJAX.
EDIT
Я не согласен с предпосылкой, но если вы собираетесь это сделать, то вам нужно продумать несколько разных вопросов. У меня есть похожее приложение (http://launchpad.uiowa.edu), которое имеет одну главную страницу, но только потому, что оно очень простое. Существует достаточное количество контроллеров для обработки различных возможных взаимодействий пользователя, поэтому с архитектурной точки зрения не сильно отличается от серверной части. Отличительной особенностью является то, что все действия возвращают PartialViews или JSON, а не полное представление. Это не особенно архитектурная проблема, но об этом нужно знать. Также необходимо учитывать, как или если вы хотите обрабатывать случай, когда JavaScript отключен.
Еще одна вещь, которую вы хотите выяснить, это то, как вы хотите отслеживать использование сайта. Любая аналитика будет бесполезна. В моем случае я проинструктировал обо всех вещах, которые меня волнуют, с помощью обработчиков кликов, которые отправляют обратно в мой собственный код отслеживания, чтобы я мог рассказать, как люди используют приложение.