Pergunta

Então estou embarcando em um ASP.NET MVC projeto e embora a experiência tenha sido boa no geral, não estou tão satisfeito com a bagunça em que meus controladores se tornaram.Eu olhei on-line (CodeCampServer, etc ...) e todos parecem sofrer o mesmo problema em que os métodos do controlador violam o SRP (princípio de responsabilidade única) de forma bastante consistente - como um método do controlador que simplesmente renderiza a visualização se a solicitação for a GET mas atualiza o model se for um POST.Agora eu tenho métodos controladores responsáveis ​​por múltiplas rotas lógicas em todo o aplicativo - digamos, ele verifica quais button foi clicado no formulário e age de acordo.Eu poderia redirecionar cada clique de botão para uma ação de formulário diferente usando JavaScript, mas algo também não parece certo...A outra grande questão é a proliferação da magia strings - ViewData["foo"] = blah; Resumindo a história, como vão vocês structure seu controller lógica?Um objeto modelo gigante por visualização?Muito pouco controller methods e JavaScript é o roteador?Meu objetivo é um código sustentável - à medida que os recursos são acumulados, estou começando a descer por essa ladeira escorregadia ...

Foi útil?

Solução

Visualização 5 do ASP.NET (disponível em CodePlex) tem uma resposta para isso:o atributo [AcceptVerbs].Phil Haack tem um postagem no blog discussão sobre como ele é usado.

Quanto à questão da chave mágica de visualização de dados, é um problema interessante.Se você pensar em uma visão como um conjunto de componentes semi-independentes (especialmente à luz do novo suporte de visão parcial), então criar um modelo fortemente tipado torna-se menos ideal, já que as diversas partes da visão devem ser relativamente independentes de um outro.

Outras dicas

Como diferentes pessoas estão lidando com esse problema?Eu sei que passei algumas horas revisando a confusão dentro da pasta do modelo.Acho que criar pastas é útil para reduzir a confusão visual. Usar namespaces correspondentes também ajuda muito.

Mas meus controladores são monólitos no momento.o problema é que estou focado em aprender até este ponto do projeto (ainda há muito o que resolver).

Estou entendendo bem o MVC agora, então é hora de revisar a complexidade e considerar modificar os controladores para funções mais limpas e com nomes melhores.

Outras pessoas estão dividindo seus controladores em subcontroladores?(Se existe tal coisa)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top