Я думаю, что это нормально, чтобы изменить представление на основе контекста; Так происходит все время. Делаете ли вы if .. else или несколько файлов aspx, действительно зависит от того, насколько много отличается. Пара альтернативных вариантов:
1) используйте Html.RenderAction для вызова действий AdminController для встраивания материала, AdminController может возвращать пустые результаты, если пользователь не является администратором
или, что лучше:
2) использовать другую мастер-страницу в зависимости от роли / статуса пользователя. Таким образом, вы можете использовать логику для установки мастера в фильтр действий, который ему нравится, и делать это один раз, но применять его везде, где это имеет смысл. Просто убедитесь, что альтернативные главные страницы совместимы с представлениями с точки зрения contentplaceholderId.