2010-03-23 13 views
6

क्या यह अलग-अलग उपयोगकर्ता भूमिकाओं के आधार पर एमवीसी में एक ही यूआरएल के लिए कई विचारों को खराब अभ्यास माना जाता है? उदाहरण के लिए: http://www.domain.com/ViewProductID/123 नियमित उपयोगकर्ता के लिए "सामान्य" उत्पाद पृष्ठ दिखाएगा और यह व्यवस्थापक के रूप में लॉग इन किए गए किसी व्यक्ति को "उन्नत" (उत्पाद आंकड़े, शीर्षक आदि संपादित करने की क्षमता ..) संस्करण दिखाएगा।एमवीसी - वही यूआरएल, एकाधिक विचार

यदि यह खराब अभ्यास है, तो क्यों? यदि यह ठीक है, तो इसे लागू करने का सबसे अच्छा तरीका क्या है? 2 अलग टेम्पलेट्स या 1 टेम्पलेट बिखरे हुए अगर ..

धन्यवाद!

उत्तर

2

मुझे लगता है कि संदर्भ के आधार पर दृश्य को संशोधित करना ठीक है; हस समय यह होता रहता है। चाहे आप ऐसा करते हैं .. अन्यथा या एकाधिक एएसपीएक्स फाइलें वास्तव में इस पर निर्भर करती हैं कि कैसे अधिक अलग है। एक जोड़े को वैकल्पिक विकल्प:

1) Html.RenderAction का उपयोग एक AdminController कार्रवाई के खिलाफ कॉल करने के लिए सामान एम्बेड करने के लिए, AdminController खाली परिणाम दे सकें, तो उपयोगकर्ता एक व्यवस्थापक

या नहीं है, बेहतर:

2) उपयोगकर्ता की भूमिका/स्थिति के आधार पर एक अलग मास्टर पेज का उपयोग करें। इस तरह, आप मास्टर को एक्शनफिल्टर में सेट करने के लिए तर्क खींच सकते हैं, और इसे एक बार करें लेकिन जहां भी यह समझ में आता है इसे लागू करें। बस यह सुनिश्चित करें कि वैकल्पिक मास्टर पेज contentplaceholderId के संदर्भ में संगत w/विचार हैं।

+0

+1 अच्छा और विस्तृत उत्तर। – systempuntoout

1

मेरी राय में उपयोगकर्ताओं और व्यवस्थापक के लिए एक ही यूआरएल होना ठीक है। असली सवाल आपके उपयोगकर्ताओं के लिए उपयोगिता के आसपास है। क्या इसका उनके पर कोई असर पड़ता है? प्रमाणीकरण के स्तर के आधार पर एमवीसी वर्तमान अतिरिक्त सामग्री या लिंक का उपयोग कर कई साइटें।

आप किस ढांचे और भाषा का उपयोग कर रहे हैं? यदि आपके पास कुछ आंशिक विचार उपलब्ध हैं तो आपको एक पूरी तरह से अलग टेम्पलेट की आवश्यकता नहीं हो सकती है।

1

यदि पृष्ठ बहुत अलग नहीं होने जा रहे हैं (यानी वे एक ही डेटा दिखाते हैं, संभवतः व्यवस्थापक के लिए अधिक के साथ) तो मैं कहूंगा कि सभी कोड एक ही फाइल में डाल दें। आपकी क्षमताओं

if can? :create, Users do 
    ... 
else 
    ... 
end 

उसके बाद, आप सेटअप इतना है कि व्यवस्थापक और प्रबंधकों दोनों उन बना सकते हैं: यदि संभव हो, तो यह है कि आप निम्नलिखित तरह बातें पूछ सकते हैं एक भूमिका आधारित क्षमता प्रबंधन प्रणाली का उपयोग करें। इस तरह, आपको चिंता करने की ज़रूरत नहीं है कि उपयोगकर्ता कौन है, केवल उपयोगकर्ता को क्या करने की अनुमति है।

1

असल में आप विभिन्न पृष्ठों के परिणामस्वरूप अनुमतियों के बारे में बात कर रहे हैं, जो करना बहुत आम बात है। फेसबुक पर 2 अलग-अलग लोगों के लिए डिफ़ॉल्ट लैंडिंग पृष्ठ के बारे में सोचें।

कार्यान्वयन किसी अन्य चीज़ के समान ही है: सामान्य तत्वों को गठबंधन करें जहां आप पुन: उपयोग कर सकते हैं। सरल मतभेद सिर्फ तभी जा सकते हैं जब विभिन्न टेम्पलेट्स में और अधिक जटिल मतभेद हैं।

संबंधित मुद्दे