Le convenzioni RESTful indicano l'uso di sostantivi plurali su oggetti singolari.
Qual è la convenzione di pluralizzazione per la denominazione dei controller ASP.NET MVC, ovvero
ProductController
o ProductsController
?
Le convenzioni RESTful indicano l'uso di sostantivi plurali su oggetti singolari.
Qual è la convenzione di pluralizzazione per la denominazione dei controller ASP.NET MVC, ovvero
ProductController
o ProductsController
?
Risposte:
Alcuni framework MVC utilizzano plurali, tuttavia i modelli di progetto MVC contengono un controller chiamato AccountController che suggerisce così la denominazione singolare.
Non importa. Come con la maggior parte delle cose nel framework Asp.net MVC, la scelta è tua. Non ci sono vere convenzioni.
È la mia opinione personale, ma ciò che conta è che tu scelga uno schema ed essere coerente!
Dovrò non essere d'accordo con le risposte precedenti sull'uso del plurale o del singolare e sull'essere coerenti. Ogni controller dovrebbe utilizzare una convenzione diversa in base al fatto che interagiscano con entità singole o multiple. Soprattutto perché il nome del controller viene utilizzato per impostazione predefinita nell'URL.
Sebbene i modelli di progetto utilizzino singolare (HomeController, AccountController), esiste solo una Home e le azioni Account operano solo sul singolo account per la sessione. Non mi aspetto che gli URL di / homes accedano alla home page, né mi aspetto di andare su / accounts per gestire le impostazioni del mio account.
Il HomesController plurale sarebbe lavorare per un sito web immobiliare che aveva metodi relativi alla quotazione e alla ricerca più case: case / / new-in lista.
UsersController
ha senso se progetti i tuoi percorsi come /api/users
(tutti gli utenti) e /api/users/{userId}
(utente singolo)
/api/user/{userId}
fare altrettanto molto senso, però, si potrebbe sostenere che, anche nel caso di trattare con più utenti, che il controller riflette il tipo di entità, in tal modo HomeController
si occuperebbe di entità di tipo Home
, quindi /Home/{homeId}
e/Home/All-Homes/
Quando si aggiunge un controller utilizzando lo scaffolding MVC per un'entità Entity Framework, VS2013 rende il nome del controller plurale, quindi suggerirei di utilizzare quel valore predefinito che rende i controller per le entità plurali.
AGGIORNAMENTO: ho cambiato idea. LouD è corretto. Dipende dal contesto del controller.