2008-09-23 2 views
24

Кто-нибудь создал хорошее соглашение об именах для действия в MVC? Я специально смотрел ASP.net MVC, но это общий вопрос. Например, у меня есть действие, которое отображает экран входа (Login) и тот, который обрабатывает запрос на вход с этой страницы (LoginTest). Я не увлекаюсь именами, и у меня есть много приложений, которые нужно написать.Конвенция об именовании действий

ответ

39

Rob Conery в MS предложил некоторые полезные названия стиля RESTful для действий.

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

приводит к URL, по линиям (для форума)

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

+0

Я также вижу, что с помощью новейшего MVC вы можете установить, какие глаголы приняты действием, поэтому вы можете назвать действие Edit как для начальной загрузки страницы, так и для сохранения информации. – stimms 2008-10-23 01:11:04

+0

Кажется, что сообщение от Роба Конира предшествует способности давать как форму отображения, так и методы формы формы. Я также отмечаю, что образец Nerd Dinner имеет Edit, но в шаблоне Controller есть Update для модификации объекта. – Richard 2009-07-19 13:21:07

0

Встроенный суффикс действий Django _done. Таким образом, LoginDone будет страницей, обрабатывающей Login (в стиле ASPC MVC для верблюда).

+0

Это хорошо, но это означает, что вход не было завершено, когда на самом деле сделано действие обработки логина , Возможно, PromptLogin и Login. – stimms 2008-09-23 00:58:41

0

Это не имеет никакого отношения к тому, какое соглашение вы используете для именования действий контроллера, если оно вам подходит и легко понимается теми, кто работает над ним.

В случае вашего входа в систему, LoginDone в порядке и в том же самом ProcessLogin будет легко понять, поэтому используйте соглашение, с которым вам удобно.

Лично я, вероятно, был бы стороной с Login и ProcessLogin, поскольку LoginDone, вероятно, немного вводит в заблуждение с точки зрения действия Action - это, конечно, предполагает, что Action реагирует на учетные данные пользователей и проверяет, действительны ли они , Затем вы можете перейти к другому действию под названием LoginDone после успешного входа в систему или входа в систему, если это не так.

1

Я нашел blog post by Stephen Walther полезно для нахождения последовательного схема именования. Его также получают из схемы именования стиля REST с некоторыми уникальными исключениями, которые он объясняет.

1

Rails имеет красивое соглашение об именовании действий для операций 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

Это по существу обновление Paul Shannon's answer, с момента его источника (Rob Конери) неявно говорит, что он скопировал свой список из Rails.