2009-01-13 12 views
7

के साथ पंजीकरण नहीं कर रहा है मेरे पास विजुअल स्टूडियो 2008 में बनाया गया एक सी # वेब एप्लिकेशन है जहां हम ASP.NET के 'प्री-बिल्ट' ब्लॉक के लिए उपयोगकर्ता नियंत्रण पर भारी निर्भर हैं।Web.config में पंजीकृत विजुअल स्टूडियो 2008 उपयोगकर्ता नियंत्रण intellisense

प्रत्येक पृष्ठ पर उपयोगकर्ता नियंत्रणों का एक बड़ा ढेर पंजीकृत करने के बजाय, हम सभी नियंत्रण स्थानीय (एक विशिष्ट फ़ोल्डर में) web.config फ़ाइल में पंजीकृत करते हैं। लाभ यह है कि हम नियंत्रण और पृष्ठों का उपयोग स्रोत दृश्य में 'क्लीनर' दिख सकते हैं। हालांकि, न तो वीएस -2008 डिज़ाइन व्यू और न ही इंटेलिसेंस इस तथ्य को पहचानते हैं कि नियंत्रण web.config में पंजीकृत हैं। हालांकि, आवेदन स्वयं अपेक्षा के रूप में काम करता है।


आम तौर पर प्रत्येक पेज के शीर्ष पर हम इस तरह एक टैग होगा:

<%@ Register src="~/CommonControls/Foo.ascx" tagname="Foo" tagprefix="Bar" %> 

और हम तो जैसे स्थानीय web.config में नियंत्रण रजिस्टर:

<?xml version="1.0"?> 
<configuration> 
    <system.web> 
     <pages> 
      <controls> 
       <add src="~/CommonControls/Foo.ascx" tagName="Foo" tagPrefix="Bar"/> 
      </controls> 
     </pages> 
    </system.web> 
</configuration> 

क्या किसी को इन कस्टम नियंत्रणों को पहचानने के लिए इंटेलिजेंस प्राप्त करने के लिए किसी फिक्स के बारे में पता है? या, क्या ऐसा करने का एक 'बेहतर' तरीका है?

+0

मैं गलत हो सकता है, लेकिन मैंने सोचा कि वेब अनुप्रयोग प्रोजेक्ट्स (विशेष रूप से VS2008 SP1 के साथ) के बिना <% @ रजिस्टर ... टैग IntelliSense प्रदान करेगा। –

उत्तर

2

हालांकि यह स्थानीय वेब में काम नहीं करता है। कॉनफिग फ़ाइल आप उसी रूट को प्राप्त करने के लिए अपनी रूट web.config फ़ाइल में स्थान टैग का उपयोग कर सकते हैं।

उदाहरण के लिए:

<?xml version="1.0"?> 
<configuration> 
    <location path="MyPath"> 
     <system.web> 
      <pages> 
       <controls> 
        <add src="~/CommonControls/Foo.ascx" tagName="Foo" tagPrefix="Bar"/> 
       </controls> 
      </pages> 
     </system.web> 
    </location> 
</configuration> 
1

शायद यह इस तथ्य से है कि यह मुख्य web.config फ़ाइल में पंजीकृत नहीं है। मुख्य web.config फ़ाइल में एक या दो संदर्भ डालकर इसका परीक्षण करें।

+0

हाय वहाँ। आपके उत्तर के लिए धन्यवाद। हां, यह मुख्य web.config में काम करता है लेकिन मुझे उम्मीद है कि यह स्थानीय web.config में काम करेगी। निश्चित रूप से, यह व्यवहार की उम्मीद है। कोई विचार? माइक –

0

ऐसा इसलिए हो सकता है क्योंकि आप नियंत्रण को दो बार पंजीकृत कर रहे हैं और इंटेलिजेंस संदर्भ को हल करने में असमर्थ है?

मैं exepect होता है कि नियंत्रण या तो एक कॉन्फ़िग फ़ाइल में या पेज के निर्देश

+0

हाय ब्लैटफ्रिग। आपके सुझाव के लिए धन्यवाद। प्रश्न थोड़ा विचित्र है। स्पष्टीकरण के लिए: हमने इसे दो बार पंजीकृत नहीं किया है, ऊपर दिए गए दो कोड स्निपेट विकल्प थे जो काम करना चाहिए। मैं उनसे मिलकर सहमत हूं कि भ्रम पैदा होगा! - माइक –

1

में पंजीकृत होना चाहिए मैं अपने नमूना कोड की कोशिश की और Intellisense aspx पेज के दोनों कोड देख सकते हैं और पेज के पीछे कोड में काम करता है। आप अपने उपयोगकर्ता नियंत्रण के वर्ग नामों की जांच कर सकते हैं, दृश्य स्टूडियो में डिफ़ॉल्ट रूप से कक्षा के नाम में फ़ोल्डर का नाम शामिल है। तो आपके नियंत्रण को नाम Foo के बजाय 0Cके बजाय CommonControls_Foo नामित किया जा सकता है।

किसी भी तरह से web.config फ़ाइल के पीछे कोड के इंटेलिसेंस के साथ कुछ लेना देना नहीं है। कक्षा के नाम और नामस्थान की जांच करें।

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