2008-12-15 13 views
8

में सूची उपयोग का चयन करें, मैं एक एमवीसी साइट पर काम कर रहा हूं जो मेरी पहली कंपनी है, एक चीज जो मैं खुद को बहुत कुछ कर रहा हूं वह एक नियंत्रक में चयनसूची बना रही है, उन्हें व्यूडाटा और पढ़ने में डाल रही है उन्हें एक HTML बनाते समय। DropDownList। यह कुछ चीजें हैं जो मुझे इस तरह के बारे में सुगंधित करती हैं।एएसपीएनटी एमवीसी

  1. कुछ पृष्ठों चीजों की सूची (के रूप में वे की जरूरत है एक उपयोगकर्ता एक होटल के रूप में कई कमरे में जोड़ सकते हैं wheer एक होटल के कमरे के बोर्ड दर) को दोहरा सकते हैं, वर्तमान में मैं एक ही selectList उपयोग करते हैं, यह अच्छा अभ्यास है या क्या उनके पास एक होना चाहिए?

  2. पिछले उदाहरण के साथ "कमरा" एक एन्सेक्स है जो या तो एक रेंडरपार्टियल या jquery के माध्यम से AJAX कॉल द्वारा प्रस्तुत किया जाता है। नियंत्रक को चयनसूची को पास करने का सबसे अच्छा तरीका क्या है, इसलिए एएसएक्स इसका उपयोग कर सकता है, वर्तमान में मैं पृष्ठ के लिए व्यूडाटा में जोड़ता हूं, जो इसे रेंडरपार्टियल में व्यूडेटा पास करता है, लेकिन फिर अजाक्स कॉल पर एक्शन विधि को जोड़ने की भी आवश्यकता होती है ascx के लिए व्यूडाटा में चयनसूची, agan यकीन नहीं है कि यह सबसे अच्छा तरीका है।

  3. मैं एक भंडार है कि एक सामान्य सूची के रूप में इस "स्थिर" डेटा और रिटर्न रखती है, इसलिए हर बार नियंत्रक डेटा यह सूची के लिए भंडार हिट की जरूरत है (वहाँ सिर्फ बोर्ड दर की तुलना में कुछ और, बातें हैं लोगों, मिस्टर, मिस्टर इत्यादि के लिए खिताब की तरह) मुझे संदेह है कि कुछ प्रकार का कैश बेहतर होगा क्योंकि डेटा कभी भी बदलता है।

क्या किसी के पास इन क्षेत्रों में कोई सलाह है?

उत्तर

3
  1. उन SelectLists पूरी तरह से बराबर हैं, तो मैं कई DropDownLists के लिए एक सूची का उपयोग करने के लिए सुनिश्चित बेहतर कर रहा हूँ।

  2. इसके सामान्य उपयोग की तरह लग रहा है। मैं भी इसी तरह के दृष्टिकोण का उपयोग कर रहा हूं, लेकिन एचटीएमएल.रेंडरएक्शन में कुछ नियंत्रणों को बंद करने के बारे में सोच रहा हूं, क्योंकि पेज के व्यूडाटा को नियंत्रित करने के लिए गुजरना मेरे लिए अच्छा नहीं लगता है। हां, मुझे पता है कि यह शुद्ध एमवीसी नहीं होगा :)

  3. यदि आपका ओआरएम कैश का समर्थन करता है, तो निश्चित रूप से इसका उपयोग करें।

लेकिन भी अगर अपनी परियोजना छोटा नहीं है और आपको लगता है कि यह विकसित करने के लिए जारी रहेगा, मैं अपने खजाने के ऊपर एक सेवा लेयर (PoEAA पैटर्न) कि व्यापार तर्क और कैश प्रबंधन तर्क भी शामिल होगा लागू करने के लिए सलाह देते हैं।

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

+0

ठीक है। यह छोटा और अपरिवर्तनीय है, मैं इसे आसानी से कैसे कैश कर सकता हूं? – Shimmy

0

ऐसा करने का एक तरीका यह है कि टाइप किए गए दृश्य के माध्यम से अपने मॉडल में चुनी गई सूची के लिए आवश्यक डेटा डालना है। दृश्य मॉडल में डेटा को किसी भी चुनिंदा सूचियों को उत्पन्न करने के लिए पुन: सक्रिय कर सकता है। आप सीधे ऑब्जेक्ट को व्यूडाटा संग्रह में भी सामान डाल सकते हैं, लेकिन मुझे लगता है कि एक टाइप किए गए दृश्य के परिणामस्वरूप अधिक क्लीनर कोड होता है।

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