2010-06-03 18 views
18

मैं के ASP.NET 2 पेज कार्यावधि में यह संदेश प्राप्त:पेज को उसी फ़ोल्डर में उपयोगकर्ता नियंत्रण का प्रयोग करें

पेज 'MyFolder/blabla.aspx' उपयोगकर्ता नियंत्रण 'उपयोग नहीं कर सकते MyFolder/MyControl.ascx ', क्योंकि यह web.config में पंजीकृत है और पृष्ठ के समान निर्देशिका में रहता है।

बेशक मैं उन्हें 2 विभिन्न फ़ोल्डर के अलग कर सकते हैं और इस तरह की समस्या का समाधान है, लेकिन सवाल यह है:

WTF!?!?! मैं उन्हें एक ही फ़ोल्डर में क्यों नहीं डाल सकता? वे सब क्यों नहीं हो सकते .. साथ मिलते हैं! :)

धन्यवाद

+0

मजेदार है कि मुझे नियंत्रण के लिए यह वही सटीक त्रुटि मिलती है जिसमें मेरे पास एक और नियंत्रण शामिल है। यह भी कहता है "पृष्ठ 'MyCONTROL.aspc' ..."। पेज! = नियंत्रण। तो मुझे लगता है कि एक निर्देशिका में एक से अधिक नियंत्रण होने की समस्या है। – sparebytes

उत्तर

10

यह सीमा डिजाइन के द्वारा होता है एक आंतरिक डिजाइन विचार पुनः के कारण: प्रदर्शन।

अधिक जानकारी के लिए here देखें।

टिप्पणियां

TagPrefixInfo वर्ग आप प्रोग्राम का उपयोग करने की और एक विन्यास फ़ाइल में संग्रहीत टैग-उपसर्ग जानकारी को संशोधित अनुमति देता है। यह एएसपी.NET @के समान कार्यक्षमता प्रदान करता है निर्देश पंजीकृत करें। टैग उपसर्ग एएसपी.NET में असेंबली और नेमस्पेस में "नेमस्पेस" को संबद्ध करते हैं जिन्हें कस्टम नियंत्रण और उपयोगकर्ता नियंत्रण ठीक से काम करने के लिए शामिल किया जाना चाहिए। TagPrefixCollection ऑब्जेक्ट के सदस्यों के रूप में TagPrefixInfo ऑब्जेक्ट संग्रहीत किए जाते हैं। TagPrefixCollection वर्ग आप प्रोग्राम पहुँच सकते हैं और नियंत्रण पृष्ठों एक विन्यास फाइल की खंड के उपधारा संशोधित करने के लिए अनुमति देता है।

TagPrefixInfo वस्तुओं तत्व जोड़ का उपयोग करने और tagPrefix अन्य प्रासंगिक विशेषताओं के लिए मूल्यों के साथ साथ विशेषता के लिए एक मूल्य को निर्दिष्ट संग्रह करने के लिए जोड़ रहे हैं।

  • यदि यह एक उपयोगकर्ता नियंत्रण है, तो आप TagPrefix, TagName, और Source गुण को परिभाषित करना होगा: अन्य जानकारी भिन्न होता है नियंत्रण की तरह आप निर्दिष्ट टैग उपसर्ग के साथ प्रयोग करेंगे के आधार पर की आवश्यकता है।
  • यदि यह एक कस्टम नियंत्रण है, तो आपको TagPrefix, Namespace, और Assembly गुणों को परिभाषित करना होगा। Assembly नियंत्रण की आवश्यकता नहीं है यदि नियंत्रण अनुप्रयोग कोड निर्देशिका में है। वही टैगप्रिक्स मान एकाधिक असेंबली या नामस्थानों को मैप करने के लिए उपयोग किया जा सकता है।

नोट जब एक स्रोत निर्दिष्ट किया जाता है, उपयोगकर्ता नियंत्रण ही पेज उसी निर्देशिका में नहीं होना चाहिए। यदि ऐसा है, तो आप पेज लोड करने का प्रयास करते समय रन-टाइम त्रुटि प्राप्त करते हैं।

2

मुझे संदेह है कि आप इसे पंजीकृत किए बिना इसे पंजीकृत कर सकते हैं, अगर यह आवश्यक था। आपके पास शायद प्लेसहोल्डर हो सकता है और फिर उपयोग करें। नियंत्रण। जोड़ें (लोडकंट्रोल ("path.ascx"))

लेकिन यदि यह आवश्यक नहीं है तो इसे @ बार्री के कारणों के कारण इसे एक अलग निर्देशिका में डालें।

6

यदि आप इसे web.config के बजाय पृष्ठ या उपयोगकर्ता नियंत्रण में पंजीकृत करते हैं तो यह ठीक से लोड हो जाएगा। पृष्ठ के शीर्ष पर निम्नलिखित जोड़ें।

<%@ Register TagPrefix="MyControlTagPrefix" TagName="MyControlTagName" Src="~/MyFolder/MyControl.ascx" %> 
संबंधित मुद्दे