Domanda

Qualcuno ha stabilito una buona convenzione di denominazione per l'azione in MVC? Stavo guardando specificamente ASP.net MVC ma è una domanda generale. Ad esempio, ho un'azione che visualizza la schermata di accesso (Login) e una che elabora la richiesta di accesso da quella pagina (LoginTest). Non mi piacciono i nomi e ho ancora molte applicazioni da scrivere.

È stato utile?

Soluzione

Rob Conery di MS ha suggerito alcuni utili nomi in stile RESTful per le azioni.

* 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"

genera URL lungo le righe di (per un forum)

* 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 su RESTful Architecture for MVC

Altri suggerimenti

Ho trovato post di blog di Stephen Walther utile per trovare uno schema di denominazione coerente. I suoi sono anche derivati ??da uno schema di denominazione in stile REST, con alcune eccezioni uniche che spiega.

Rails ha una simpatica convenzione di denominazione delle azioni per le operazioni CRUD: Rails Routing dall'esterno in .

HTTP Verb Path Controller # Azione utilizzata per GET / photos foto # indice visualizza un elenco di tutte le foto GET / photos / new photos # new restituisce un modulo HTML per la creazione di una nuova foto POST / photos photos # create crea una nuova foto GET / photos /: id photos # show mostra una foto specifica GET / photos /: id / edit photos # edit restituisce un modulo HTML per la modifica di una foto PATCH / PUT / photos /: id photos # update aggiorna una foto specifica DELETE / photos /: id photos # destroy elimina una foto specifica

Questo è essenzialmente un aggiornamento di la risposta di Paul Shannon , poiché la sua fonte (Rob Conery) dice implicitamente che ha copiato la sua lista da Rails.

Il suffisso predefinito di azioni Django _done. Quindi LoginDone sarebbe la pagina che elabora Login (in stile case ASP.NET MVC camel).

È abbastanza irrilevante quale convenzione usi per la denominazione dell'azione del controller, purché sia ??coerente per te e facilmente comprensibile per coloro che ci lavorano.

Nel caso delle tue azioni di accesso, LoginDone va bene e allo stesso modo ProcessLogin sarà facile da capire, quindi usa una convenzione con cui ti senti a tuo agio.

Personalmente probabilmente mi schiererei con Login e ProcessLogin, dal momento che LoginDone probabilmente è leggermente fuorviante in termini di ciò che l'Azione sta facendo - questo ovviamente presuppone che l'Azione stia reagendo alle credenziali degli utenti e verificandone la validità. È quindi possibile passare a un'altra azione denominata LoginDone quando l'accesso ha esito positivo oppure LoginFailed in caso contrario.

Il post di Stephen Walther su ASP.NET Suggerimento MVC n. 11 - Usa nomi azione controller standard probabilmente ti chiarirebbe in merito alla convenzione di denominazione della convenzione di denominazione Azione MVC ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top