Я предлагаю вам перестать думать, что URL-адреса и контроллеры являются отношениями 1-> 1.Это сделает вещи НАМНОГО проще и менее запутанными.Вы можете заставить URL работать так, как хотите, с помощью механизма маршрутизации MVC, и нет никаких причин ограничивать дизайн / организацию контроллера из-за желаемых URL, потому что вы всегда можете адаптировать маршрутизацию с учетом URL, которые вы имеете в виду.
При создании веб-сайта просто сосредоточьтесь на контроллерах (и общем интерфейсе) и игнорируйте URL-адреса, пока не дойдете до этой точки, а затем, когда вы найдете хорошую схему URL-адреса, перейдите в систему маршрутизации и добавьтемаршруты для подключения к существующим действиям контроллера по вашему желанию.
Как только вы закодируете свой механизм ведения блогов, у вас будет гораздо лучшее представление о рабочем процессе пользователя и, возможно, будут найдены различные способы организации ваших URL-адресов, и вы сможетезатем реорганизуйте свои URL-адреса, не касаясь самих контроллеров.
Что касается вашего первого требования:
Есть два способа сделать это в зависимости от вашей конечной цели.Если ваша цель состоит в том, чтобы отображать одно и то же основное содержимое, но иметь разные пользовательские параметры (различный общий макет, дополнительные кнопки на странице и т. Д.), Тогда лучше всего просто передать свойство IsAdministrator
в вашем представлении.модели и внесите небольшие изменения в страницу, основываясь на том, верно это или нет.Причина в том, что вы все еще (скорее всего) хотите, чтобы ядро страницы было одинаковым, и это не дает вам возможности дублировать код, связанный с основными данными (данными, которые отображаются как для администраторов, так и для не администраторов).
Редактировать : Итак, в общем, организуйте свои контроллеры на основе того, что облегчает разработку с помощью, а не на основе того, как пользователь взаимодействует с системой.Вы всегда можете поменять последнее, поменять первое сложнее, и обслуживание будет раздражать.