Количество контроллеров - PullRequest
0 голосов
/ 09 января 2012

Я делаю проект Asp.Net MVC 3, который должен иметь около 10-15 просмотров.

Как мне решить, следует ли мне поместить их в один или несколько контроллеров?

Или лучше использовать один контроллер для одной таблицы базы данных?

Ответы [ 5 ]

3 голосов
/ 09 января 2012

Разделите ваши контроллеры логически.Если у вас есть что-то, что связано с Продуктами, создайте контроллер продуктов.Если вы имеете дело с учетной записью, используйте AccountsController и т. Д.

0 голосов
/ 09 января 2012

Вы можете создавать контроллеры в зависимости от потребностей вашего домена. Например, если у вас есть система с формой регистрации / входа в систему, вы можете создать для нее контроллер с именем «Пользователь» и иметь для них различные методы действий.

 public class UsersController : Controller
 {
    // Get Request
    public ActionResult Signup()
    {
      return View();
    }
    // Sign up post
    [HttpPost]
    public ActionResult Signup()
    {
      // to do : your signup validation logic here
      return View();
    }

    // Get Request
    public ActionResult Login()
    {
      return View();
    }
    // Login post
    [HttpPost]
    public ActionResult Login()
    {
      return View();
    }

 }

аналогично вы можете иметь другой контроллер для вашей другой модели домена, такой как Product

 public class ProductsController : Controller
 {
    // Get Request to list all Products
    public ActionResult List()
    {
      return View();
    }
    //remaining action methods based on your need
 }

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

0 голосов
/ 09 января 2012

Определенно не лучше использовать подход «контроллер к таблице», если ваши таблицы не расположены так, что каждый логический объект и все его части находятся в одной таблице. Как сказал Увольнение. Логические группировки по модулю или группе пользователей, либо по разрешениям, либо по комбинации. т.е. регистрация, логин, продукты, usersadmin и тд.

0 голосов
/ 09 января 2012

Как правило, вам следует создавать новый контроллер каждый раз, когда вы сталкиваетесь с новым бизнес-объектом, для которого у вас уже нет контроллера. Следовательно, вы можете создать CustomerController и ProductsController, но не имеет смысла создавать CustomersToProductsController.

Контроллеры не являются 1-к-1 с таблицами базы данных и, конечно, не являются 1-к-1 с представлениями. Надеюсь, это поможет.

0 голосов
/ 09 января 2012

Зависит от вашего дизайна на самом деле. Пример: Клиент с адресом, может быть сохранен в нескольких таблицах (clientinfo, address и т. Д.), В этом случае вам, вероятно, лучше использовать только клиентский контроллер. В любом случае, это всего лишь один сценарий.

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