Como organizar os controllers em um projeto MVC
Olá, pessoal. Tudo bem?
Quando vocês estão desenvolvendo aplicações MVC, como vocês definem seus controllers? Um controller para um grupo de ações relacionadas a um contexto (CRUD, por exemplo), ou um para cada ação (um para criação, um para edição, etc). Por exemplo:
Opção 1:
Controllers.ProdutosController:
- Index() [GET] -> Retorna a página com a lista de produtos
- Cadastro() [GET] -> Retorna a página com um form para cadastrar novo produto
- Cadastrar() [POST] -> Recebe os dados do form acima e cadastra o produto
- Edicao(id) [GET] -> Retorna a página com um form para editar o produto
- Editar(id) [POST] -> Recebe os dados do form acima e edita o produto
- Exclusao(id) [GET] -> Retorna a página com um form para confirmar a exclusão do produto
- Excluir(id) [POST] -> Recebe os dados do form acima e exclui o produto
Opção 2
Controllers.Produtos.CadastroController:
- Index() [GET]: Retorna a tela de cadastro
- Post() [POST]: Recebe os dados e cadastra o produto
Controllers.Produtos.EdicaoController:
- Index(id) [GET]: Retorna a tela de edição
- Post(id) [POST]: Recebe os dados e edita o produto
...demais controllers para CRUD
Qual abordagem vocês usam normalmente?
Quando vocês estão desenvolvendo aplicações MVC, como vocês definem seus controllers? Um controller para um grupo de ações relacionadas a um contexto (CRUD, por exemplo), ou um para cada ação (um para criação, um para edição, etc). Por exemplo:
Opção 1:
Controllers.ProdutosController:
- Index() [GET] -> Retorna a página com a lista de produtos
- Cadastro() [GET] -> Retorna a página com um form para cadastrar novo produto
- Cadastrar() [POST] -> Recebe os dados do form acima e cadastra o produto
- Edicao(id) [GET] -> Retorna a página com um form para editar o produto
- Editar(id) [POST] -> Recebe os dados do form acima e edita o produto
- Exclusao(id) [GET] -> Retorna a página com um form para confirmar a exclusão do produto
- Excluir(id) [POST] -> Recebe os dados do form acima e exclui o produto
Opção 2
Controllers.Produtos.CadastroController:
- Index() [GET]: Retorna a tela de cadastro
- Post() [POST]: Recebe os dados e cadastra o produto
Controllers.Produtos.EdicaoController:
- Index(id) [GET]: Retorna a tela de edição
- Post(id) [POST]: Recebe os dados e edita o produto
...demais controllers para CRUD
Qual abordagem vocês usam normalmente?
Rachel Andrade
Curtidas 0