ASP.NET Контроллер MVC — единственное или множественное число и имеет ли это значение

#asp.net-mvc #controller #naming

#asp.net-mvc #контроллер #именование

Вопрос:

Я знаю, что это вопрос, который задавался сотни раз раньше, но я подчеркиваю схему именования, которую я использую Controllers в своем ASP.Net Приложение MVC.

Скажем, например, у меня есть вызываемая модель, которую я могу просматривать, обновлять и удалять. User Аналогично, у меня также есть коллекция Users , которую я могу искать, выдавая много результатов.

Поскольку маршрутизация имеет форму {controller}/{action}/{parameter} , тогда моя «английская» голова считает, что URL-адрес:

http://localhost/users/view/123 неверно, поскольку URL относится к одному продукту, тогда как:

http://localhost/user/view/123 правильно, поскольку пользователь просматривает один продукт

И аналогично, с Product и Products :

http://localhost/product/edit/P123456

http://localhost/products/?searchQuery

Кажется, это имеет больше смысла (ну, во всяком случае, для меня) и, таким образом, означает, что я должен реализовать два Controllers для каждого Model , но, по крайней мере, это означает, что я знаю, что единственный контроллер имеет дело с одним объектом, тогда как множественная версия имеет дело с несколькими объектами:

UserController -> Добавить, отредактировать, просмотреть, удалить
UsersController -> Найти, удалить

Я думаю, единственная ложка дегтя в бочке меда — это когда я сталкиваюсь с объектом, который является тем же единственным, что и множественное число, но в рамках моего проекта это может быть довольно редкой вещью.

Извините, если это бессмысленная болтовня, однако я был бы признателен за некоторую информацию от пользователей, которые проходили через это раньше.

Комментарии:

1. Голосование за закрытие в основном основано на мнениях. Если он работает правильно, то мнение SO по этому поводу не имеет большого значения. Используйте свое собственное суждение.

Ответ №1:

Это не имеет значения. Пользователи обычно не переходят по вашему сайту, вводя URL-адреса, а щелкая ссылки, кнопки, меню, ….