То, что вы могли бы рассмотреть, это области. Это позволит вам иметь отдельные контроллеры для каждой области. Затем разрешите доступ к этим областям в зависимости от ролей или чего угодно.
Это даст вам такие маршруты, как «/ admin / controller / action», «/ users / controller / action» и т. Д. «Pattern» разделяет все ваши контроллеры по пространству имен и довольно хорошо справляется с маршрутизацией. Легкое разделение главных страниц и т. Д.
Это не даст вам (потенциально сбивающему с толку, IMO) '/' и '/ admin /' выглядеть одинаково для администратора, но позволит разделить контент и контроллеры.
То, что вы описываете, может привести к потенциально множеству методов для каждого контроллера, что обычно не одобряется толпой MVC / REST. Это не ужасно, но и не считается лучшей практикой.
Вы можете прочитать об областях в этом блоге здесь . Google "asp.net MVC области" для более.
-------- редактировать -----------
Чтобы немного расширить:
Без пользовательских маршрутов или некоторых других махинаций действия отображаются на контроллеры по URL. Поэтому, если вы хотите, чтобы все действия и представления администратора отличались друг от друга, кроме корневого URL, наряду с обычными действиями пользователя, это привело бы к одному большому контроллеру, который должен обрабатывать все эти действия, или к некоторому странному «если это роль, это представление ; если это роль, то представление "своего рода бессмыслица, которая должна была бы случиться в каждом действии. Что-то вроде беспорядка для отладки.
Точно так же механизм представления по умолчанию находит представления также на основе URL.
Это будет означать, что все ваши представления будут находиться в одном большом уродливом каталоге, полном всевозможных странных с одинаковыми именами, но по-разному ведут себя представлений.
Короче говоря, это может стать ужасным кошмаром обслуживания, в зависимости от сложности приложения.