MVC, quando separar os controladores?

5

Estou começando com o MVC e tenho uma pergunta de novato. Quais seriam os critérios lógicos para definir o que um controlador deve abranger? Por exemplo, digamos que um site tenha uma seção de "ajuda". Lá, há várias opções como: "sobre nós", "instruções de retorno", "entre em contato", "oportunidades de emprego". Cada um seria então acessado como 'mysite.com/help/aboutus', 'mysite.com/help/returns', 'mysite.com/help/contactus', etc.

A minha pergunta é, devo ter um controlador de 'ajuda' que tenha 'sobre nós', 'retornos', 'entre em contato', 'emprego' como ações com suas respectivas visões, ou se cada um deles for um controlador diferente conjunto de vista de ação? Qual deve ser a linha de raciocínio para determinar quando separar os controladores?

    
por Rodolfo 06.09.2012 / 21:08
fonte

2 respostas

3

Isso depende inteiramente de você.

Com o asp.net MVC3, você pode escolher se deseja que o roteamento padrão funcione ou se deseja criar manualmente alguns URLs "sexy". Você pode criar rotas que parecem estar dentro do mesmo controlador, mas elas podem, de fato, estar em muitos controladores diferentes.

Os critérios que você deve usar ao decidir a organização dos Controllers e seu método são, essas ações estão relacionadas de alguma forma?

Seguindo seu exemplo para a Ajuda. Faria sentido mantê-los dentro do mesmo controlador porque eles oferecem "Ajuda" de uma forma ou de outra.

    
por 06.09.2012 / 21:12
fonte
1

Normalmente, um controlador mapeia uma classe para um URL base, geralmente uma página da Web, por exemplo, mysite.com/help, então você tem a ideia certa. Os métodos de classe são normalmente manipuladores para ações acionadas por controles na página - que normalmente têm um caminho anexado, por exemplo, mysite.com/help/contact - se disser 'contato', um botão que abriu o programa de e-mail padrão do usuário com o endereço da empresa preenchido no campo 'Para'.

    
por 06.09.2012 / 22:19
fonte