Pluralización de nombres de controladores ASP.NET MVC

86

Las convenciones RESTful indican el uso de sustantivos en plural sobre objetos singulares.

¿Cuál es la convención de pluralización para nombrar controladores ASP.NET MVC, es decir,
ProductControllero ProductsController?

Petrus Theron
fuente
4
No creo que se suponga que estén pluralizados a juzgar por los predeterminados que vienen con los tutoriales de MVC en ASP.net.
user1477388
1
La API web ASP.NET predeterminada, por ejemplo, tiene una combinación de nombres en singular (HomeController, AccountController) y en plural (ValuesController).
Sergio Vicente

Respuestas:

45

Algunos marcos MVC usan plurales, sin embargo, las plantillas de proyecto MVC contienen un controlador llamado AccountController, lo que sugiere un nombre único.

No importa. Como con la mayoría de las cosas en el marco MVC de Asp.net, la elección es suya. No hay convenciones reales.

Es mi opinión personal, pero lo que importa es que elijas un plan y seas coherente.

Cybermaxs
fuente
3
Pulgar hacia arriba para enfatizar la coherencia.
pim
3
Yo diría que en realidad, esta es la respuesta correcta: stackoverflow.com/a/31968960/2013803 (tiene más votos pero no se marcó como "la respuesta). El AccountController es para la cuenta del usuario actual; usando plural sería muy extraño a menos que esté allí para administrar múltiples usuarios en un panel de administración; pero ese es un caso de uso diferente y debería (en mi humilde opinión) ser un controlador diferente. Y también hay solo un Inicio para el HomeController. Entonces ... no , la coherencia debe consistir en comprender lo que hace un controlador y darle un nombre apropiado basado en eso.
Jashan
162

Voy a tener que estar en desacuerdo con las respuestas anteriores de usar plural o singular y ser consistente. Cada controlador debe usar una convención diferente en función de si interactúan con una o varias entidades. Especialmente porque el nombre del controlador se usa por defecto en la URL.

Si bien las plantillas de proyecto usan singular (HomeController, AccountController), solo hay un Inicio y las acciones de Cuenta solo operan en la cuenta única para la sesión. No esperaría que las URL de / homes accedan a la página de inicio, ni esperaría ir a / accounts para administrar la configuración de mi cuenta.

El HomesController plural sería trabajar para un sitio web de bienes raíces que tenía métodos relacionados con la lista y buscar múltiples viviendas: casas / / nuevos anuncios.

Ruidoso
fuente
3
De acuerdo - Por ejemplo, a UsersControllertiene sentido si diseña sus rutas como /api/users(todos los usuarios) y /api/users/{userId}(un solo usuario)
Levi Fuller
2
Sin /api/user/{userId}embargo, no tendría tanto sentido, podría argumentar que incluso en el caso de tratar con múltiples usuarios, su controlador refleja el tipo de entidad, por HomeControllerlo tanto , trataría con entidades de tipo Home, por lo tanto, /Home/{homeId}y/Home/All-Homes/
NibblyPig
Estoy de acuerdo con esta explicación.
Hailee
13

Cuando agrega un controlador utilizando el andamio MVC para una entidad de Entity Framework, VS2013 hace que el nombre del controlador sea plural, por lo que sugeriría usar ese valor predeterminado que hace que los controladores para las entidades sean plurales.

ACTUALIZACIÓN: cambié de opinión. LouD es correcto. Depende del contexto del controlador.

RitchieD
fuente