Konwencje RESTful wskazują na używanie rzeczowników w liczbie mnogiej zamiast pojedynczych obiektów.
Jaka jest konwencja liczby mnogiej nazywania kontrolerów ASP.NET MVC, tj.
ProductController
Lub ProductsController
?
Konwencje RESTful wskazują na używanie rzeczowników w liczbie mnogiej zamiast pojedynczych obiektów.
Jaka jest konwencja liczby mnogiej nazywania kontrolerów ASP.NET MVC, tj.
ProductController
Lub ProductsController
?
Odpowiedzi:
Niektóre struktury MVC używają liczby mnogiej, jednak szablony projektów MVC zawierają kontroler o nazwie AccountController, co sugeruje pojedyncze nazewnictwo.
To nie ma znaczenia. Podobnie jak w przypadku większości rzeczy we frameworku Asp.net MVC, wybór należy do Ciebie. Nie ma prawdziwych konwencji.
To moja osobista opinia, ale ważne jest, aby wybrać schemat i być konsekwentnym!
Będę musiał nie zgodzić się z poprzednimi odpowiedziami dotyczącymi używania liczby pojedynczej lub mnogiej i bycia konsekwentnym. Każdy kontroler powinien stosować inną konwencję w zależności od tego, czy współdziała z jedną, czy z wieloma jednostkami. Zwłaszcza, że nazwa kontrolera jest używana domyślnie w adresie URL.
Podczas gdy szablony projektów używają liczby pojedynczej (HomeController, AccountController), istnieje tylko jedna strona główna, a akcje konta działają tylko na jednym koncie w sesji. Nie spodziewałbym się, że adresy URL / homes będą uzyskiwać dostęp do strony głównej, ani nie spodziewałbym się przejść do / accounts w celu zarządzania ustawieniami konta.
Mnoga HomesController będzie działać na stronie nieruchomości, który miał metod odnoszących się do podawania i przeszukiwania wielu domów: / Home / New-aukcji.
UsersController
ma sens, jeśli projektujesz swoje trasy, takie jak /api/users
(wszyscy użytkownicy) i /api/users/{userId}
(jeden użytkownik)
/api/user/{userId}
miałoby to jednak większego sensu, ale można by argumentować, że nawet w przypadku pracy z wieloma użytkownikami, kontroler odzwierciedla typ jednostki, a więc HomeController
poradzi sobie z jednostkami typu Home
, stąd /Home/{homeId}
i/Home/All-Homes/
Gdy dodajesz kontroler przy użyciu szkieletu MVC dla jednostki Entity Framework, VS2013 tworzy liczbę mnogą nazwę kontrolera, więc sugerowałbym użycie tej wartości domyślnej, która sprawia, że kontrolery dla jednostek są liczbą mnogą.
UPDATE: Zmieniłem zdanie. LouD ma rację. To zależy od kontekstu kontrolera.