Сайт ASP.NET MVC, где пользователи могут добавлять / удалять страницы - PullRequest
2 голосов
/ 04 августа 2009

Я разрабатываю веб-сайт для клиента, на котором они хотят иметь возможность управлять контентом и добавлять / удалять страницы.

В то же время некоторые страницы на сайте будут интерактивными и предоставят пользовательские отчеты для зарегистрированных пользователей.

Я начал разработку сайта в ASP.NET MVC, потому что хотел полный контроль над рендерингом.

Однако мне сложно концептуально смоделировать сайт.

Если пользователи могут добавлять / удалять страницы, то как может быть прямое сопоставление URL-адресов с контроллерами?

Я мог бы создать один контроллер 'Page' и передать ему идентификатор контента, но это означало бы, что все код на сайте будет находиться в 1 файле класса.

Я мог бы заставить настраиваемые / интерактивные страницы располагаться под разными контроллерами, но тогда, как клиент сможет управлять ими?

Я действительно потерял из-за угла юзабилити. Если я создаю пользовательские интерактивные страницы, как клиент все равно может добавить / удалить их? Разве это не изменит структуру самого приложения?

1 Ответ

2 голосов
/ 04 августа 2009

У меня возникли проблемы с пониманием того, с чем вы пытаетесь справиться, и в чем ваша проблема:

Я мог бы сделать один контроллер 'Page' и передать ему идентификатор контента, но это будет означать, что весь код в сайт будет находиться под 1 файлом класса.

Я мог бы сделать кастом / интерактив страницы сидят под разными контроллерами, но тогда, как клиент будет умеет ими управлять?

Что не так с "файлом одного класса"? Ваша проблема с семантической точки зрения (то есть, вы не хотите, чтобы все URL начинались с / страниц)? Или просто управление кодом?

Если вы работаете с базой данных, я бы сделал следующее:

  1. Имейте CMSController, который принимает запросы. Он либо а) проверяет идентификатор (возможно, не обращая внимания на заглушку), либо б) берет заглушку и ищет его в БД.
  2. Возврат содержимого.

Таким образом, запросы к / CMS / Page / 4384 будут обрабатываться по вашему желанию. Затем вы бы расширили это несколькими способами. Установите действие по умолчанию, чтобы / CMS / 4384 обслуживал страницу. Затем добавьте заглушку (/ CMS / 4384 / Заголовок страницы или любой другой текст). Установите дополнительные маршруты, такие как / aboutus / и / product_info / для всех точек на вашем CMSController. Или просто обратите внимание на CMSController.

Кроме того, контроллер может открыть html-файл в файловой системе и обслуживать его.

Помогает ли это вообще?

Джеймс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...