ASP.NET MVC Denetleyicisi Adlandırma Çoğullaştırma


90

RESTful kuralları, tekil nesneler üzerinde çoğul isimlerin kullanılmasını belirtir.

ASP.NET MVC denetleyicilerini adlandırmak için çoğullaştırma kuralı nedir, yani
ProductControllerveya ProductsController?


4
ASP.net'teki MVC öğreticileriyle birlikte gelen varsayılanlardan yola çıkarak çoğul olmaları gerektiğini düşünmüyorum.
user1477388

1
Örneğin varsayılan ASP.NET Web API'si hem tekil (HomeController, AccountController) hem de çoğul adların (ValuesController) bir karışımına sahiptir.
Sergio Vicente

Yanıtlar:


45

Bazı MVC Çerçeveleri çoğulları kullanır, ancak MVC proje şablonları AccountController adlı bir denetleyici içerir, bu nedenle tekil adlandırma önerir.

Önemli değil. Asp.net MVC çerçevesindeki çoğu şeyde olduğu gibi, seçim sizin. Gerçek bir konvansiyon yok.

Bu benim kişisel görüşüm ama önemli olan bir plan seçip tutarlı olmanız!


4
Tutarlılığa vurgu yapmak için parmaklarınızı kaldırın.
pim

4
Aslında bunun doğru cevap olduğunu söyleyebilirim: stackoverflow.com/a/31968960/2013803 (daha fazla oyu var ancak "cevap" olarak işaretlenmemiş). AccountController mevcut kullanıcının hesabı içindir; Bir yönetici panosundaki birden fazla kullanıcıyı yönetmek için orada olmadığı sürece çoğul çok garip olurdu; ancak bu farklı bir kullanım durumu ve farklı bir denetleyici olmalıdır (IMHO). Ayrıca HomeController için yalnızca bir Ana Sayfa vardır. Yani ... hayır , tutarlılık tamamen bir denetleyicinin ne yaptığını anlamak ve buna dayanarak ona uygun bir isim vermekle ilgili olmalıdır.
Jashan

167

Çoğul ya da tekil kullanma ve tutarlı olma gibi önceki cevaplara katılmamak zorunda kalacağım. Her denetleyici, tek veya birden çok varlıkla etkileşimde bulunmalarına bağlı olarak farklı bir kural kullanmalıdır. Özellikle de denetleyici adı varsayılan olarak URL'de kullanıldığından.

Proje şablonları tekil (HomeController, AccountController) kullanırken, yalnızca bir Ana Sayfa vardır ve Hesap eylemleri yalnızca oturum için tek bir hesapta çalışır. / Homes’un URL’lerinin ana sayfaya erişmesini veya hesap ayarlarımı yönetmek için / accounts adresine gitmeyi beklemem.

Çoğul HomesController , birden çok evi listelemek ve aramakla ilgili yöntemleri olan bir emlak web sitesi için çalışacaktı: / evler / yeni listeler.


3
Kabul Edildi - Örneğin, UsersControllerrotalarınızı /api/users(tüm kullanıcılar) ve /api/users/{userId}(tek kullanıcı)
Levi Fuller 18

2
Olmaz /api/user/{userId}sadece böylece, denetleyici varlık türünü yansıttığını, hatta birden fazla kullanıcı ile uğraşan durumunda olduğu iddia edilebilir, ama çok anlamda olarak yapmak HomeControllerÇeşidi varlıkları ile anlaşma olacağını Homedolayısıyla /Home/{homeId}ve/Home/All-Homes/
NibblyPig

Bu açıklamaya katılıyorum.
Hailee

13

Bir Entity Framework varlığı için MVC iskelesi kullanarak bir denetleyici eklediğinizde, VS2013 denetleyici adını çoğul yapar, bu nedenle varlıklar için denetleyicileri çoğul yapan varsayılanı kullanmanızı öneririm.

GÜNCELLEME: Fikrimi değiştirdim. LouD doğru. Denetleyicinin bağlamına bağlıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.