Разделение ASP.NET MVC контроллеров - PullRequest
4 голосов
/ 15 июля 2009

Как разделить контроллеры на сайте ASP.NET MVC? Например, в проекте по умолчанию есть HomeController и AccountController. Должен ли быть один контроллер для каждого раздела сайта или что-то еще?

Я учусь использовать инфраструктуру MVC, и любая помощь будет признательна.

Ответы [ 3 ]

1 голос
/ 15 июля 2009

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

Как правило, я считаю хорошей идеей взять листок из книги CRUD, если вы не уверены, особенно если вы имеете дело с моделью данных, которая ее поддерживает. Для конкретного модуля (скажем, «Продукты») у вас будет контроллер, отвечающий за создание, чтение, обновление и удаление (а также индекс для просмотра).

Если ваш сайт менее CRUDDY (например, переполнение стека, вероятно), тогда разделение контроллеров на логические области (как, например, «PostController», «SearchController» и т. Д.) Может быть более полезным, но это действительно зависит на вашем сайте и это архитектура.

Извините, я не могу быть более полезным, в большинстве случаев лучше учиться в любом случае. Если вы новичок, используйте подход, который, по вашему мнению, лучше всего основан на предложениях и примерах, которые вы видели. Хорошая мысль о .NET и ASP.NET MVC заключается в том, что последующий рефакторинг довольно прост.

0 голосов
/ 15 июля 2009

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

По сути, имея много контроллеров, можно логически разделить сайт на разные разделы.

0 голосов
/ 15 июля 2009

Обычный способ сделать это - разделить контроллеры так же, как вы разделяете свои представления. Пример:

/ Представления / Дом имеет индекс, регистр и просмотр контактов, тогда у вас будет HomeController

/ Представления / Product имеет представления Show и List, тогда у вас будет ProductController

Самый простой способ - это 1 контроллер для каждой папки в папке Views.

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