ASP.NET MVC Controller Naming Pluralization

asp.net MvcNaming ConventionsPluralizeasp.net Mvc-Controller

asp.net Mvc Problem Overview


RESTful conventions indicate using plural nouns over singular objects.

What is the pluralization convention for naming ASP.NET MVC controllers, i.e.
ProductController or ProductsController?

asp.net Mvc Solutions


Solution 1 - asp.net Mvc

I'm going to have to disagree with the previous answers of using either plural or singular and being consistent. Each controller should use a different convention based on whether they interact with single or multiple entities. Especially since the controller name is used by default in the URL.

While the project templates use singular (HomeController, AccountController), there is only one Home and the Account actions only operate on the single account for the session. I would not expect the URLs of /homes to access the homepage, nor would I expect to go to /accounts to manage my account settings.

The plural HomesController would work for a real estate website that had methods related to listing and searching multiple homes: /homes/new-listings.

Solution 2 - asp.net Mvc

Some MVC Frameworks use plurals, however the MVC project templates contains a controller called AccountController thus suggesting singlular naming.

It doesn't matter. As with most things in the Asp.net MVC framework the choice is yours. There is no real conventions.

It's my personal opinion but what matters is that you pick a scheme and be consistent!

Solution 3 - asp.net Mvc

When you add a controller using MVC scaffolding for an Entity Framework entity, VS2013 makes the controller name plural, so I would suggest using that default which makes controllers for entities plural.

UPDATE: I changed my mind. LouD is correct. It depends on the context of the controller.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPetrus TheronView Question on Stackoverflow
Solution 1 - asp.net MvcLouDView Answer on Stackoverflow
Solution 2 - asp.net MvcCybermaxsView Answer on Stackoverflow
Solution 3 - asp.net MvcRitchieDView Answer on Stackoverflow