MVC 控制器命名多元化

RESTful 约定表示在单数对象上使用复数名词。

什么是命名 ASP.NET MVC 控制器的多元化约定,即。
ProductController还是 ProductsController

36649 次浏览

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!

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.

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.