Конвенції RESTful вказують на використання іменників множини над одиничними об’єктами.
Що таке принцип плюралізації для іменування контролерів ASP.NET MVC, тобто
ProductController
або ProductsController
?
Конвенції RESTful вказують на використання іменників множини над одиничними об’єктами.
Що таке принцип плюралізації для іменування контролерів ASP.NET MVC, тобто
ProductController
або ProductsController
?
Відповіді:
Деякі MVC Frameworks використовують множину, однак шаблони проектів MVC містять контролер, який називається AccountController, таким чином пропонуючи одиничне іменування.
Це не має значення. Як і у більшості речей в рамках Asp.net MVC, вибір за вами. Справжніх умовностей немає.
Це моя особиста думка, але важливо те, що ви обираєте схему та дотримуєтеся послідовності!
Мені доведеться не погодитись із попередніми відповідями щодо використання множини чи однини та послідовності. Кожен контролер повинен використовувати іншу конвенцію залежно від того, взаємодіють вони з окремими чи кількома сутностями. Тим більше, що ім'я контролера використовується за замовчуванням в URL-адресі.
Хоча в шаблонах проектів використовується однина (HomeController, AccountController), є лише одна Домашня сторінка, і дії Облікового запису діють лише на одному обліковому записі сеансу. Я не очікував, що URL-адреси / будинків отримають доступ до домашньої сторінки, а також не хотів би переходити до / акаунтів для управління налаштуваннями свого облікового запису.
Багаточисельний HomesController працював би на веб-сайті нерухомості, який мав методи, пов’язані з переліком та пошуком кількох будинків: / homes / new-listings.
UsersController
має сенс, якщо ви розробляєте свої маршрути, такі як /api/users
(усі користувачі) та /api/users/{userId}
(одинарний користувач)
/api/user/{userId}
Хоча це не мало б такого ж сенсу, ви могли б стверджувати, що навіть у випадку спілкування з кількома користувачами, ваш контролер відображає тип сутності, таким чином HomeController
буде мати справу з сутностями типу Home
, отже /Home/{homeId}
і/Home/All-Homes/
Коли ви додаєте контролер за допомогою лісів MVC для сутності Entity Framework, VS2013 робить ім'я контролера множинним, тому я б запропонував використовувати той за замовчуванням, який робить контролери для сутностей множинним.
ОНОВЛЕННЯ: Я передумав. ГРОМКО правильно. Це залежить від контексту контролера.