ASP.NET MVC 컨트롤러 명명 복수화


86

RESTful 규칙은 단수 객체에 복수 명사를 사용함을 나타냅니다.

즉, ASP.NET MVC 컨트롤러를 이름의 복수화 규칙 무엇입니까
ProductController또는 ProductsController?


4
ASP.net의 MVC 자습서와 함께 제공되는 기본 항목으로 판단하면 복수형으로되어 있다고 생각하지 않습니다.
user1477388

1
예를 들어 기본 ASP.NET 웹 API에는 단수 (HomeController, AccountController) 및 복수 이름 (ValuesController)이 혼합되어 있습니다.
Sergio Vicente

답변:


45

일부 MVC 프레임 워크는 복수형을 사용하지만 MVC 프로젝트 템플릿에는 AccountController라는 컨트롤러가 포함되어 있으므로 단일 이름 지정을 제안합니다.

상관 없습니다. Asp.net MVC 프레임 워크의 대부분과 마찬가지로 선택은 귀하의 것입니다. 실제 규칙은 없습니다.

내 개인적인 의견이지만 중요한 것은 계획을 선택하고 일관성을 유지하는 것입니다!


3
일관성을 강조하는 엄지 손가락.
pim

3
실제로 이것이 정답이라고 말하고 싶습니다 : stackoverflow.com/a/31968960/2013803 (더 많은 표가 있지만 "답변으로 표시되지 않았습니다). AccountController는 현재 사용자의 계정을위한 것입니다. plural은 관리자 대시 보드에서 여러 사용자를 관리하기위한 것이 아니라면 매우 이상 할 것입니다. 그러나 그것은 다른 사용 사례이며 (IMHO)는 다른 컨트롤러 여야합니다. 또한 HomeController에 대한 홈은 하나뿐입니다. , 일관성은 컨트롤러가하는 일을 이해하고 그에 따라 적절한 이름을 지정하는 것이
어야

162

나는 복수 또는 단수를 사용하고 일관성을 유지하는 이전 답변에 동의하지 않을 것입니다. 각 컨트롤러는 단일 또는 여러 엔티티와 상호 작용하는지 여부에 따라 다른 규칙을 사용해야합니다. 특히 컨트롤러 이름은 URL에서 기본적으로 사용되기 때문입니다.

프로젝트 템플릿은 단일 (HomeController, AccountController)을 사용하지만 홈은 하나만 있고 계정 작업은 세션의 단일 계정에서만 작동합니다. / homes의 URL이 홈페이지에 액세스 할 것으로 기대하지 않으며, / accounts로 이동하여 내 계정 설정을 관리하지도 않을 것입니다.

복수의 HomesController 여러 주택을 나열하고 검색하는 방법이있는 부동산 웹 사이트에서 작동합니다 : / homes / new-listings.


3
합의 - 예를 들어,은 UsersController당신이 당신과 같은 경로 설계 할 경우 의미가 있습니다 /api/users(모든 사용자) 및 /api/users/{userId}(단일 사용자)
레위 풀러

2
하지 않을까요 /api/user/{userId}당신이 따라서, 컨트롤러가 엔티티 유형을 반영, 심지어 다수의 사용자를 처리하는 경우에 그것을 주장 할 수 있습니다,하지만 많은 의미로 만들 HomeController유형의 엔티티를 다루는 것입니다 Home따라서, /Home/{homeId}/Home/All-Homes/
NibblyPig

이 설명에 동의합니다.
Hailee

13

Entity Framework 엔터티에 대해 MVC 스캐 폴딩을 사용하여 컨트롤러를 추가 할 때 VS2013은 컨트롤러 이름을 복수로 만들므로 해당 기본값을 사용하여 엔터티에 대한 컨트롤러를 복수로 만드는 것이 좋습니다.

업데이트 : 나는 내 마음을 바꿨다. LouD가 정확합니다. 컨트롤러의 상황에 따라 다릅니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.