Вопрос

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

Это было полезно?

Решение

Роб Конери из 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

Роб Конери об архитектуре RESTful для MVC

Другие советы

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

Rails имеет хорошее соглашение об именовании действий для операций CRUD: Прокладка рельсов снаружи в.

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

По сути, это обновление для Ответ Пола Шеннона, поскольку его источник (Роб Конери) неявно говорит, что он скопировал свой список из Rails.

Встроенный суффикс действий Django _done.Таким образом, LoginDone будет страницей, которая обрабатывает вход в систему (в ASP.NET стиле MVC camel case).

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

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

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

Сообщение Стивена Уолтера о ASP.NET Совет MVC № 11 – Используйте стандартные имена действий контроллера вероятно, я бы разъяснил вам относительно соглашения об именовании MVC Action соглашение об именовании...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top