Konwencja Nazewnictwa Akcji

Czy ktoś ustalił dobrą konwencję nazewnictwa dla akcji w MVC? Dokładnie patrzyłem na ASP.net MVC ale to jest pytanie ogólne. Na przykład mam akcję, która wyświetla ekran logowania (Login) i taką, która przetwarza żądanie logowania z tej strony (LoginTest). Nie przepadam za nazwiskami i mam jeszcze sporo do napisania.

Author: stimms, 2008-09-23

6 answers

Rob Conery z MS zasugerował kilka użytecznych nazw stylu RESTful dla akcji.

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

Wyniki w Url wzdłuż linii (dla 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 o architekturze RESTful dla MVC

 40
Author: Paul Shannon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 10:27:10

Rails ma ładną konwencję nazw akcji dla operacji CRUD: Rails Routing from the Outside In .

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

to jest zasadniczo aktualizacja do Paul Shannon ' s answer , ponieważ jego źródło (Rob Conery) pośrednio twierdzi, że skopiował swoją listę z Rails.

 2
Author: Grilse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:26:14

Znalazłem wpis na blogu Stephena Walthera przydatny do znalezienia spójnego schematu nazewnictwa. Jego również wywodzą się z systemu nazewnictwa w stylu REST, z pewnymi wyjątkami, które wyjaśnia.

 1
Author: Dave Weaver,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-01 19:56:15

Wbudowany przyrostek akcji Django _done. Więc LoginDone będzie stroną, która przetwarza Login (w ASP.NET MVC camel case style).

 0
Author: Lou Franco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 00:51:56

Nie ma znaczenia, jakiej konwencji używasz do nazwania akcji kontrolera, o ile jest ona dla Ciebie zgodna i łatwo zrozumiała dla osób nad nią pracujących.

W przypadku twoich działań login, LoginDone jest w porządku i w tym samym processlogin will jest łatwy do zrozumienia, więc użyj konwencji, z którą czujesz się komfortowo.

Osobiście prawdopodobnie byłbym po stronie Login i ProcessLogin, ponieważ LoginDone jest prawdopodobnie nieco mylące pod względem tego, co jest działaniem Robienie-jest to oczywiście przy założeniu, że akcja reaguje na poświadczenia użytkowników i sprawdza, czy są one ważne. Możesz przejść do innej akcji o nazwie LoginDone po pomyślnym zalogowaniu lub LoginFailed, jeśli tak nie jest.

 0
Author: Jimmeh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-23 10:19:52

Stephen Walther ' s post on ASP.NET MVC Tip #11-użycie standardowych nazw akcji kontrolera prawdopodobnie wyjaśni ci konwencję nazw MVC Action...

 0
Author: Murat Yıldız,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-17 10:24:24