2008-09-13 18 views
8

मैं अपने एएसपी.नेट एमवीसी अनुप्रयोग में कुछ (2 या 3) मास्टर पेज का उपयोग कर रहा हूं और उन्हें प्रत्येक डेटाबेस से जानकारी के बिट्स प्रदर्शित करना होगा। प्रायोजकों की सूची, वर्तमान वित्त पोषण स्थिति आदिएमवीसी एप्लिकेशन में मास्टर पेज का कोड कहां रखा जाए?

तो मेरा सवाल था, मुझे इन मास्टर पेज डेटाबेस कॉलिंग कोड कहां रखना चाहिए?

आम तौर पर, इन्हें अपने स्वयं के नियंत्रक वर्ग में जाना चाहिए? लेकिन फिर इसका मतलब यह होगा कि मुझे उन्हें मैन्युअल रूप से तार करना होगा (उदा। व्यूडेटा पास करना) क्योंकि यह एमवीसी फ्रेमवर्क द्वारा प्रदान किए गए सामान्य रूटिंग फ्रेमवर्क से बाहर है।

क्या तारों के बिना स्पष्ट रूप से इसका कोई तरीका है व्यूडेटा पास/मैन्युअल रूप से मास्टर पेजों पर एक्शन कॉल या ढांचे को उप-वर्गीकृत करना?

दस्तावेज़ीकरण की मात्रा बहुत कम है ... और मैं एमवीसी की अवधारणाओं सहित सभी के लिए बहुत नया हूं इसलिए कृपया इस पर अपनी युक्तियां/तकनीकें साझा करें।

उत्तर

5

ऐसा करने का एक तरीका मास्टरपेज में व्यूडेटा के लिए हुक को देखना है और फिर आप बेसकंट्रोलर को परिभाषित करते हैं: कंट्रोलर (या एकाधिक बेस क्लास) जहां आप आवश्यक सभी डीबी कॉल करते हैं।

आप जो करना चाहते हैं वह this लेखों में वर्णित वही बात है।

मुझे आशा है कि इससे मदद मिलती है!

सादर

0

आप दृढ़ता से टाइप किया दृश्य डेटा कोई आपत्ति नहीं है, तो आप ViewData के लिए एक आम आधार वर्ग में सभी मास्टर पृष्ठ डेटा डाल सकते हैं। आप इस डेटा को बेस क्लास के कन्स्ट्रक्टर में सेट कर सकते हैं। आपके सभी विचारों को अतिरिक्त डेटा की आवश्यकता होगी, फिर इस बेस क्लास से प्राप्त होने वाले दृढ़ता से टाइप किए गए व्यूडेटा की आवश्यकता होगी।

protected override ViewResult View(string viewName, string masterName, object model) 
{ 
    if (model == null) 
    { 
     model = new ViewDataBase(); 
    } 
    return base.View(viewName, masterName, model); 
} 
+0

इसके बजाय बेसव्यूडेटा को कॉल करना चाहते हैं :-) – chakrit

1

महान प्रश्न:

किसी भी स्पष्ट ViewData आप अपने ControllerBase में देखें ओवरराइड कर सकते हैं बिना अपने नियंत्रकों में() देखें के लिए एक कॉल की अनुमति देने के। आपके पास कई विकल्प उपलब्ध हैं।

  1. अपने मास्टरपेज पर एक jQuery कॉल है जो आपको नियंत्रक से आवश्यक डेटा को पकड़ लेता है और फिर jQuery का उपयोग करके अपने फ़ील्ड को पॉप्युलेट करता है।
  2. आपका दूसरा विकल्प उपयोगकर्ता नियंत्रण बनाना है जो नियंत्रक को अपनी जानकारी को पॉप्युलेट करने के लिए अपनी कॉल करता है।

मुझे लगता है कि सबसे अच्छा विकल्प आपके मास्टरपेज के क्षेत्र के लिए नियंत्रण बना रहा है जिसमें डेटा को पॉप्युलेट करने की आवश्यकता है। इस प्रकार अपने मास्टर पेज को सख्ती से डिजाइन तत्वों को शामिल करने के लिए छोड़ दें। सौभाग्य।

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