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.
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
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.
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.
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).
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.
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
...
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