ASP.NET MVC नियंत्रक नामकरण बहुवचन


86

प्रतिष्ठित सम्मेलनों में एकवचन वस्तुओं पर बहुवचन संज्ञाओं का उपयोग किया जाता है।

ASP.NET MVC नियंत्रकों के नामकरण के लिए बहुवचन सम्मेलन क्या है,
ProductControllerया ProductsController?


4
मुझे नहीं लगता कि उन्हें ASP.net पर MVC ट्यूटोरियल्स के साथ आने वाले डिफ़ॉल्ट से जज बनाया जाना चाहिए।
user1477388

1
उदाहरण के लिए डिफ़ॉल्ट ASP.NET वेब API में एकवचन (HomeController, AccountController) और बहुवचन नाम (ValuesController) दोनों का मिश्रण है।
सर्जियो विसेंट

जवाबों:


45

कुछ MVC फ्रेमवर्क प्लुरल का उपयोग करते हैं, हालांकि MVC प्रोजेक्ट टेम्प्लेट में एक नियंत्रक होता है जिसे AccountController कहा जाता है, जो एकवचन नामकरण का सुझाव देता है।

इससे कोई फर्क नहीं पड़ता। Asp.net MVC फ्रेमवर्क में अधिकांश चीजों के साथ चुनाव आपका है। कोई वास्तविक सम्मेलन नहीं है।

यह मेरी निजी राय है लेकिन इससे क्या फर्क पड़ता है कि आप स्कीम चुनते हैं और सुसंगत होते हैं!


3
स्थिरता पर जोर देने के लिए अंगूठे।
पीम

3
मैं कहूंगा कि वास्तव में, यह सही उत्तर है: stackoverflow.com/a/31968960/2013803 (इसमें अधिक वोट हैं, लेकिन "उत्तर" के रूप में चिह्नित नहीं किया गया था। AccountController वर्तमान उपयोगकर्ता के खाते के लिए है; का उपयोग कर; बहुवचन बहुत अजीब होगा जब तक कि एक व्यवस्थापक डैशबोर्ड में कई उपयोगकर्ताओं को प्रबंधित करने के लिए नहीं है; लेकिन यह एक अलग उपयोग मामला है और (IMHO) एक अलग नियंत्रक होना चाहिए। और HomeController के लिए केवल एक ही घर भी है। इसलिए ... नहीं , स्थिरता को समझ कर एक नियंत्रक करता है और यह एक उचित आधार पर नाम देने के बारे में सब होना चाहिए।
Jashan

162

मैं बहुवचन या एकवचन का उपयोग करने और सुसंगत होने के पिछले उत्तरों से असहमत होने जा रहा हूं। प्रत्येक नियंत्रक को एक अलग सम्मेलन का उपयोग करना चाहिए, चाहे वे एकल या एकाधिक संस्थाओं के साथ बातचीत करें। विशेष रूप से चूंकि नियंत्रक नाम URL में डिफ़ॉल्ट रूप से उपयोग किया जाता है।

जबकि प्रोजेक्ट टेम्प्लेट एकवचन (HomeController, AccountController) का उपयोग करते हैं, केवल एक ही गृह होता है और खाता क्रियाएँ केवल सत्र के लिए एकल खाते पर काम करती हैं। मैं मुखपृष्ठ तक पहुँचने के लिए / घरों के URL की अपेक्षा नहीं करूँगा, और न ही मैं अपनी खाता सेटिंग प्रबंधित करने के लिए / खातों पर जाने की अपेक्षा करूँगा।

बहुवचन होम्सकंट्रोलर एक रियल एस्टेट वेबसाइट के लिए काम करेगा जिसमें कई घरों को सूचीबद्ध करने और खोजने से संबंधित विधियां थीं: / घरों / नई-लिस्टिंग।


3
सहमत - उदाहरण के लिए, एक UsersControllerसमझ में आता है कि क्या आप अपने मार्गों को डिज़ाइन करते हैं जैसे /api/users(सभी उपयोगकर्ता) और /api/users/{userId}(एकल उपयोगकर्ता)
लेवी फुलर

2
/api/user/{userId}हालाँकि, यह उतना ही अर्थपूर्ण नहीं होगा , आप यह तर्क दे सकते हैं कि कई उपयोगकर्ताओं के साथ व्यवहार करने के मामले में भी, कि आपका नियंत्रक निकाय प्रकार को दर्शाता है , इसलिए इस HomeControllerप्रकार की संस्थाओं के साथ व्यवहार करेगा Home, इसलिए /Home/{homeId}और/Home/All-Homes/
NIBlyPig

मैं इस स्पष्टीकरण से सहमत हूं।
हैली

13

जब आप इकाई फ्रेमवर्क इकाई के लिए MVC मचान का उपयोग करते हुए एक नियंत्रक जोड़ते हैं, तो VS2013 नियंत्रक नाम को बहुवचन बनाता है, इसलिए मैं उस डिफ़ॉल्ट का उपयोग करने का सुझाव दूंगा जो बहुवचन संस्थाओं के लिए नियंत्रक बनाता है।

अद्यतन: मैंने अपना मन बदल दिया। एलओडी सही है। यह नियंत्रक के संदर्भ पर निर्भर करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.