Pergunta

Alguém estabeleceu uma boa convenção de nomenclatura para a ação no MVC? Eu estava olhando especificamente ASP.net MVC, mas é uma questão geral. Por exemplo, eu tenho uma ação que mostra a tela de login (login) e uma que processar a solicitação de login a partir dessa página (LoginTest). Eu não estou interessado nos nomes e eu tenho um monte de applicaiton esquerda para a gravação.

Foi útil?

Solução

Rob Conery em MS sugeriu algum estilo RESTful útil nomeação para acções.

* Index - the main "landing" page. This is also the default endpoint.
* List - a list of whatever "thing" you're showing them - like a list of Products.
* Show - a particular item of whatever "thing" you're showing them (like a Product)
* Edit - an edit page for the "thing"
* New - a create page for the "thing"
* Create - creates a new "thing" (and saves it if you're using a DB)
* Update - updates the "thing"
* Delete - deletes the "thing"

resultados em URLs ao longo das linhas de (para um fórum)

* http://mysite/forum/group/list - shows all the groups in my forum
* http://mysite/forum/forums/show/1 - shows all the topics in forum id=1
* http://mysite/forums/topic/show/20 - shows all the posts for topic id=20

Rob Conery em RESTful Architecture for MVC

Outras dicas

Eu encontrei um post de Stephen Walther útil para encontrar um esquema de nomenclatura consistente. Sua também são derivados de um esquema de nomenclatura de estilo REST, com algumas exceções únicas que ele explica.

Rails tem uma ação agradável convenção de nomenclatura para as operações CRUD: Rails Routing de Fora para Dentro .

HTTP Verb Path Controller#Action Used for GET /photos photos#index display a list of all photos GET /photos/new photos#new return an HTML form for creating a new photo POST /photos photos#create create a new photo GET /photos/:id photos#show display a specific photo GET /photos/:id/edit photos#edit return an HTML form for editing a photo PATCH/PUT /photos/:id photos#update update a specific photo DELETE /photos/:id photos#destroy delete a specific photo

Esta é essencialmente uma atualização do Paul Shannon resposta , desde a sua fonte (Rob Conery) diz implicitamente que ele copiou sua lista de Rails.

O builtin ações Django sufixo _done. Então LoginDone seria a página que processa Login (em ASP.NET MVC estilo caso camelo).

É bastante irrelevante que convenção que utiliza para a nomeação Action Controller, desde que de consistente para você e facilmente compreendida por aqueles que trabalham nela.

No caso de suas ações de login, LoginDone está bem e no mesmo foi ProcessLogin vai é fácil de entender, então use uma convenção que você se sinta confortável.

Pessoalmente eu provavelmente lado com Login e ProcessLogin, como LoginDone é, provavelmente, um pouco enganador em termos do que a ação está fazendo - isto é, naturalmente, assumindo que a ação está reagindo a credenciais dos usuários e verificar se elas são válidas. Você poderia, então, passar para outra ação chamada LoginDone uma vez que o login for bem sucedido, ou LoginFailed se não é.

O post de Stephen Walther em ASP.NET MVC Dica # 11 - uso padrão controlador nomes de ação provavelmente esclarecer-lo sobre a convenção de nomenclatura de convenção MVC Action nomeação ...

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