Pluralisasi Penamaan Pengontrol ASP.NET MVC

89

Konvensi yang tenang menunjukkan penggunaan kata benda jamak di atas objek tunggal.

Apa konvensi pluralisasi untuk penamaan pengontrol ASP.NET MVC, ie
ProductControlleratau ProductsController?

Petrus Theron
sumber
4
Saya tidak berpikir mereka seharusnya jamak dilihat dari yang default yang disertakan dengan tutorial MVC di ASP.net.
pengguna1477388
1
Misalnya, ASP.NET Web API default memiliki campuran nama tunggal (HomeController, AccountController) dan nama jamak (ValuesController).
Sergio Vicente

Jawaban:

45

Beberapa MVC Frameworks menggunakan bentuk jamak, namun template proyek MVC berisi pengontrol yang disebut AccountController sehingga menyarankan penamaan tunggal.

Tidak masalah. Seperti kebanyakan hal dalam kerangka MVC Asp.net, pilihan ada di tangan Anda. Tidak ada konvensi yang nyata.

Itu pendapat pribadi saya, tetapi yang penting adalah Anda memilih skema dan konsisten!

Cybermaxs
sumber
4
Jempol untuk penekanan pada konsistensi.
pim
4
Saya akan mengatakan bahwa sebenarnya, ini adalah jawaban yang benar: stackoverflow.com/a/31968960/2013803 (memiliki lebih banyak suara tetapi tidak ditandai sebagai "jawaban). AccountController adalah untuk akun pengguna saat ini; menggunakan jamak akan sangat aneh kecuali ada untuk mengelola banyak pengguna di dasbor admin; tetapi itu kasus penggunaan yang berbeda dan harus (IMHO) menjadi pengontrol yang berbeda. Dan juga hanya ada satu Rumah untuk HomeController. Jadi ... tidak , konsistensi harus semua tentang memahami apa yang dilakukan pengontrol dan memberinya nama yang sesuai berdasarkan itu.
Jashan
166

Saya harus tidak setuju dengan jawaban sebelumnya yang menggunakan bentuk jamak atau tunggal dan konsisten. Setiap pengontrol harus menggunakan konvensi yang berbeda berdasarkan apakah mereka berinteraksi dengan satu atau beberapa entitas. Terutama karena nama pengontrol digunakan secara default di URL.

Sementara template proyek menggunakan tunggal (HomeController, AccountController), hanya ada satu tindakan Beranda dan Akun hanya beroperasi pada satu akun untuk sesi tersebut. Saya tidak mengharapkan URL dari / homes mengakses beranda, saya juga tidak berharap untuk membuka / accounts untuk mengelola pengaturan akun saya.

HomesController jamak akan berfungsi untuk situs web real estat yang memiliki metode yang terkait dengan daftar dan pencarian beberapa rumah: / homes / new-listing.

Keras
sumber
3
Setuju - Misalnya, UsersControllermasuk akal jika Anda mendesain rute Anda seperti /api/users(semua pengguna) dan /api/users/{userId}(pengguna tunggal)
Levi Fuller
2
Tidak akan /api/user/{userId}masuk akal, Anda dapat berargumen bahwa bahkan dalam kasus berurusan dengan banyak pengguna, bahwa pengontrol Anda mencerminkan tipe entitas, sehingga HomeControllerakan berurusan dengan entitas tipe Home, karenanya /Home/{homeId}dan/Home/All-Homes/
NibblyPig
Saya setuju dengan penjelasan ini.
Hailee
13

Ketika Anda menambahkan pengontrol menggunakan perancah MVC untuk entitas Kerangka Kerja entitas, VS2013 membuat nama pengontrol jamak, jadi saya akan menyarankan menggunakan default yang membuat pengontrol untuk entitas jamak.

UPDATE: Saya berubah pikiran. LouD benar. Itu tergantung pada konteks pengontrol.

RitchieD
sumber